我想打印输出,这是多个文件内容的组合。
示例:
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
答案 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
您永远不需要合并grep
和awk
。