我有两个文件。 1个文件已选择输入和参数
另一个具有所有参数和定义
示例file1.txt
message id: "close"
message id: "open"
message id: "down"
message id: "up"
示例file2.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"
谁能告诉我从哪里开始?
答案 0 :(得分: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
答案 1 :(得分: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