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'が長い場合、そのような長い単語を割り当てるのは非常に複雑です。

質問:

string1/2/3単一行として書き込む場合、File_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

grepとを組み合わせる必要はありませんawk

于 2013-02-12T11:46:51.490 に答える