Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 使用diff查找csv中的多行缺失行_Shell_Unix_Csv_Grep_Diff - Fatal编程技术网

Shell 使用diff查找csv中的多行缺失行

Shell 使用diff查找csv中的多行缺失行,shell,unix,csv,grep,diff,Shell,Unix,Csv,Grep,Diff,我的问题的一部分用这个答案解决了: ,但我问题的一个重要部分没有解决 使用后 diff a.csv b.csv | grep -E -A1 '^[0-9]+d[0-9]+$' | grep -v '^--$' | sed -n '0~2 p' | sed -re 's,^< (.*)$,\1,g' 这适用于多个已删除行中的第一行 我的问题是: 在这种情况下,如何获取所有删除行(可能是下面的5行)? 在diff调用中我必须更改什么 diff a.csv b.csv | sed -n '/^

我的问题的一部分用这个答案解决了: ,但我问题的一个重要部分没有解决

使用后

diff a.csv b.csv | grep -E -A1 '^[0-9]+d[0-9]+$' | grep -v '^--$' | sed -n '0~2 p' | sed -re 's,^< (.*)$,\1,g'
这适用于多个已删除行中的第一行

我的问题是: 在这种情况下,如何获取所有删除行(可能是下面的5行)? 在
diff
调用中我必须更改什么

diff a.csv b.csv | sed -n '/^[0-9]\+d[0-9]*/,/^[0-9]\+[^d]*$/{/^[0-9]\+/d;s/^< //;p}'
将查找删除的字符串范围

/^[0-9]\+/d
将删除所有
6842D68446772

s/^< //
s/^

将替换所有
是否可以附加任何差异输出示例和预期的最终结果?当然…示例差异结果:
6715c6643 夫人;;;Blub2;;斑点;19860314;Blub2。Blob@uni.de; 6745d6672 先生;纳特博士。;;英;;杨;19460610;英。yang@uni.de;我实际得到的:
Frau;;;Blub3;;布卢布;19911002;Blub3。Blooob@uni.de; 先生;浸渍;;发出砰的声响;;庞;19860225;发出砰的声响。Pong@uni.de;我想要的:
Frau;;;Blub3;;布卢布;19911002;Blub3。Blooob@uni.de; 先生;浸渍;;发出砰的声响;;庞;19860225;发出砰的声响。Pong@uni.de; 先生;浸渍;;平2;;庞;19931002;平2。Pong@uni.de; 先生;浸渍;;平3;;庞;19871212;平3。Pong@uni.de;谢谢…这是我一直在寻找的解决方案!
/^[0-9]\+/d
s/^< //