0

我有两个文件。1 个文件已选择输入和参数

另一个具有所有参数和定义

示例文件 1.txt

 message id: "close"
 message id: "open"
 message id: "down"
 message id: "up"

示例文件 2.txt

  #comment
  message id: "close"
  message value: " to turn off"

  #comment
  message id: "open"
  message value: "to inite"

等等

我想使用文件 1 的字符串参数在 file2.txt 中搜索消息 id。

我想在它前面用 " 标记每个消息 ID、值和注释,所以它看起来像这样:(仅当消息 ID 在 file1 中时)

 " #comment
 " message id: "close"
 " message value: " to turn off"

 " #comment
 " message id: "open"
 " message value: "to inite"

谁能告诉我从哪里开始??

4

2 回答 2

0

如果文件 2 中的记录上方总是有注释,并且它们由不包含空格的空行分隔,您可以尝试:

awk 'NR==FNR{A[$0]; next}$2 in A{gsub(/^|\n/,"&\"")}1' file1 RS= ORS='\n\n' FS='\n' file2

对于您的特定示例文件,需要匹配的字符位置 1 和或 2 中有空格,例如:

awk 'NR==FNR{A[" " $0]; next}$2 in A{gsub(/^|\n/,"&\"")}1' file1 RS= ORS='\n\n' FS='\n' file2
于 2013-03-12T08:09:54.047 回答
0

这个怎么样?

$ cat file1.txt | xargs -I % grep file2.txt -e % | cut -d \" -f 2
open
close

编辑:另一种方式。

$ for i in `cat file1.txt`; do grep file2.txt -e $i | cut -d \" -f 2; done
open
close
于 2013-03-11T22:48:13.723 回答