我有两个文件,每个文件都有不同的列,每个文件有不同的分隔符。我只需要打印文件中 $1与文件 fileA
中 $4 匹配的行fileB
仅当两个文件使用相同的列分隔符时,这才有效:
cat ./fileA | awk -F' ' 'FNR==NR {lines[$4]; next} $1 in lines {print $0}' fileB -
编辑 文件A:
samir x
said y
sabri z
samir y
文件B:
43,54,65,said
我将如何使用-F
来指示文件的不同分隔符fileB
? asfileA
使用默认的空格分隔符。
我试过:
cat ./fileA | awk -F' ' 'FNR==NR {lines[$4]; next} $1 in lines {print $0}' FS=',' fileB -
但它不起作用......有什么想法吗?
答案1
尝试
awk -F, 'FNR==NR { lines[$4] ; next ; } $1 in lines { print }' f2 FS=' ' f1
这使
said y