awk - 从多个来源分配变量

时间:2013-02-12 11:41:32

标签: awk grep

我想打印输出,这是多个文件内容的组合。

示例:

grep -v 'word' FILE_A | awk -v var1="string1" -v var2="string2" -v var3="string3"   
 '{ print $1 var1 var2 var3}'

我可以使用上面的命令执行此操作:为变量指定特定字符串并使用grep'ed内容进行打印。
但是如果string1/2/3很长,那么分配这么长的单词会非常复杂。

问题:

如果我将string1/2/3作为单行写入File_B,我如何将这些File_B行指定为变量?

示例:

cat File_B
string1
string2
string3

1 个答案:

答案 0 :(得分:2)

为什么不把它全部放在awk脚本而不仅仅是变量:

$ cat script.awk 
!/word/ {
    var1="string1"
    var2="string2"
    var3="string3longlonglonglonglonglong"
    print $1,var1,var2,var3
}

$ cat file
word no match
match1 
word no match
match2 match 123

$ awk -f script.awk file
match1 string1 string2 string3longlonglonglonglonglong
match2 string1 string2 string3longlonglonglonglonglong

您永远不需要合并grepawk

相关问题