私はこのコードを持っていますが、エラーが発生しています
awk '
FNR == NR {
# reading get_ids_only.txt
values[$1] = ""
next
}
BEGIN {
# reading default.txt
for (elem in values){
if ($0 ~ elem){
if (values[elem] == ""){
values[elem] = "\"" $0 "\""
getline;
values[elem] = "\n"" $0 ""\n"
}
else{
values[elem] = values[elem] ", \"" $0 "\""
getline;
values[elem] = values[elem] "\n"" $0 ""\n"
}
}
}
END {
for (elem in values)
print elem " [" values[elem] "]"
}
' get_ids_only.txt default.txt
エラーは言う
awk: syntax error at source line 23
context is
>>> END <<< {
awk: illegal statement at source line 24
awk: illegal statement at source line 24
missing }
ここから END{ } 関数が始まります...
私がやろうとしているのは..文字列を比較することです....ファイル1で..文字列がファイル2で見つかった場合は、文字列を出力し、その後の行も出力し、スペースをスキップします。
入力 1:
message id "hello"
message id "good bye"
message id "what is cookin"
入力 2:
message id "hello"
message value "greetings"
message id "good bye"
message value "limiting"
message id "what is there"
message value "looking for me"
message id "what is cooking"
message value "breakfast plate"
出力:
should print out all the input1, grabbing the message value from input 2.
このエラーが発生している理由を教えてもらえますか?
Macでターミナルを使用しています。