从 diff 的输出文件中删除行

从 diff 的输出文件中删除行

我有一个脚本,它使用diff -c然后将输出放在文本文件中。我想要的是删除没有“!”的行并显示带有感叹号的行。这可能吗?该cut命令可以解决问题吗?

我想使用它是diff -c因为它将文件从directory1 分离到directory2。

例子:

*** 1,3 ****
! 3856715355 /home/dir
  4294967277 /home/dir/file1 <---remove this line
! 154272340 /home/dir/file5
--- 1,4 ----
! 1765342654 /home/dir
  4294967277 /home/dir/file1 <--- remove this line
! 803775803 /home/dir/file4
! 2580902204 /home/dir/file99

答案1

  • grep

    diff -c file1 file2 | grep '^[-!*]'`
    
  • sed

    diff -c file1 file2 | sed '/^[-!*]/!d'
    

答案2

使用 grep:

diff -c file1 file2 | grep -v '^  '

其他行都没有以两个空格开头:不是以 开头的行!,也不是行指示。

相关内容