Grep在文件中多次出现的值并以特定方式显示

时间:2017-08-24 01:48:36

标签: shell grep

我是shell脚本的新手。我有一个下面提到的要求。 输入文件1

START
A X|
M Q|
B Y|
C Z|
D U|

END

INPUT FILE 2

START 
A X1|
M Q1|
B Y1|
C Z1|
D U1|
END
START
A X2|
M Q2
B Y2|
C Z2|
D U2|
END

预期输出

X,Y,Z
X1,Y1,Z1
X2,Y2,Z2

文件范围从几个MBS到10 GB。 我尝试了一些

的组合
grep -f patternfile file1....N >> file.txt

awk并转置 有没有更有效的方法来做同样的表现而不受阻碍。

提前致谢。

1 个答案:

答案 0 :(得分:0)

要获取密钥ABC的值,请使用以下 awk 方法:

awk '$1~/^(A|B|C)$/{ sub("\\|","",$2); s=($1=="C")?"\n":","; printf "%s%s",$2,s }' file[12]

输出:

X,Y,Z
X1,Y1,Z1
X2,Y2,Z2
相关问题