差异,仅显示右侧文件中的修改行

差异,仅显示右侧文件中的修改行

我有文件ab并且我想输出b自从从a.只有修改的行,没有周围的上下文,没有差异偏移标记。

我怎样才能使用 shell 脚本来做到这一点? (没有 Python/Perl/PHP/...)

sed 和 awk 是可接受的解决方案。

现在,我正在做的是 diff -y 与 --suppress-common-lines 和 sed 使用正则表达式反向引用来获取空白之后的正确部分。一定会有更好的办法?

使用perl(这是被禁止的),我会做这样的事情:

diff -y --suppress-common-lines -W $COLUMNS Eclipse_Preferences_Export_*.epf | perl -pe 's/.*\t|\t(.*)$/\1/g'

答案1

与GNU扩散剂包的diff这将仅输出文件 b 中已修改或新插入的行:

diff --unchanged-line-format= --old-line-format= --new-line-format='%L' a b

答案2

您必须再添加一个选项:

grep -vf file1 file2

答案3

awk 'FNR==NR{old[$0];next};!($0 in old)' old.txt new.txt

相关内容