我使用下面的命令使用前两列连接两个文件.
awk 'NR==FNR{a[$1,$2]=substr($0,3);next} ($1,$2) in a{print $0, a[$1,$2] > "br0102_3.txt"}' br01.txt br02.txt
Run Code Online (Sandbox Code Playgroud)
现在,默认情况下,AWk命令使用空格作为分隔符.但我的文件可能包含两个单词之间的单个空格,例如
档案1:
ABCD TEXT1 TEXT2 123123112312312312312312312312312312
BCDEFG TEXT3TEXT4 133123123123123123123123123125423423
QWERT TEXT5TEXT6 123123123123125456678786789698758567
Run Code Online (Sandbox Code Playgroud)
文件2:
ABCD TEXT1 TEXT2 12312312312312312312312312312
BCDEFG TEXT3TEXT4 31242342342342342342342342343
MNHT TEXT8 TEXT9 31242342342342342342342342343
Run Code Online (Sandbox Code Playgroud)
我希望结果文件为;
ABCD TEXT1 TEXT2 123123112312312312312312312312312312 12312312312312312312312312312
BCDEFG TEXT3TEXT4 133123123123123123123123123125423423 31242342342342342342342342343
QWERT TEXT5TEXT6 123123123123125456678786789698758567
MNHT TEXT8 TEXT9 31242342342342342342342342343
Run Code Online (Sandbox Code Playgroud)
任何提示?
Eta*_*ner 28
awk支持正则表达式作为值,FS因此您可以指定匹配至少两个空格的正则表达式.有点像-F '[[:space:]][[:space:]]+'.
$ awk '{print NF}' File2
4
3
4
$ awk -F '[[:space:]][[:space:]]+' '{print NF}' File2
3
3
3
Run Code Online (Sandbox Code Playgroud)