0

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

例子:

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's 很长,那么分配这么长的单词会很复杂。

问题:

如果我将string1/2/3单行写入 aFile_B如何将此类 File_B 行分配为变量?

例子:

cat File_B
string1
string2
string3
4

1 回答 1

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

于 2013-02-12T11:46:51.490 回答