我有 2 个文件需要区分。文件 B 是在文件 A 后追加了一些新行后生成的。我想使用 突出显示追加的数据diff
。
我想避免打印出‘>’字符和下面输出的‘10a11,14’。
阅读手册页后,diff
我发现您可以指定结果的格式(LFMT),但是我在生成一些有用的东西时遇到了困难。
您能帮我删除那些我不需要的字符吗?
问候
AFG
diff --left-column A.txt B.txt
10a11,14
> TXT : some text
> some text
> some text
> some text
答案1
有两种简单的方法可以做到这一点,您可以解析的输出diff
,也可以使用comm
。
diff fileA fileB | grep '>' | sed 's/> *//'
comm -13 fileA fileB
答案2
尽管使用 需要输入更多内容comm
,但以下内容提供了选项的演示--GTYPE-group-format
:
diff --unchanged-group-format="" --new-group-format="%>" A.txt B.txt
此命令将仅打印 中的行,B.txt
而不打印 中的A.txt
行。第一个选项会隐藏公共行。无需使用--changed-group-format
(每个文件中没有具有不同值的行)或--old-group-format
( 中的所有内容A.txt
也在 中B.txt
)。