将 STDIN 与另一个使用自定义列分隔符的文件一起使用?

将 STDIN 与另一个使用自定义列分隔符的文件一起使用?

我有两个文件,每个文件都有不同的列,每个文件有不同的分隔符。我只需要打印文件中 $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

相关内容