【问题标题】:diff between two strings in bashbash中两个字符串之间的差异
【发布时间】:2017-01-26 22:21:54
【问题描述】:

我有两个包含信息行的字符串。我想获得两个字符串中不同的行。 例子: 字符串1:

"This is line1
This is line2
This is line3"

字符串2:

"This is line1
This is linex
This is line2"

预期结果:

diff string1 string2 is:
"This is line3"

diff string2 string1 is:
"This is linex"

【问题讨论】:

    标签: bash diff


    【解决方案1】:

    你可以使用comm:

    $ str1="This is line1
    > This is line2
    > This is line3"
    $ str2="This is line1
    > This is linex
    > This is line2"
    
    $ comm -23 <(echo "$str1" | sort) <(echo "$str2" | sort)
    This is line3
    $ comm -23 <(echo "$str2" | sort) <(echo "$str1" | sort)
    This is linex
    

    【讨论】:

      【解决方案2】:

      你可以用diff做你想做的事

      $ str1="This is line1\nThis is line2\nThis is line3"; str2="This is line1\nThis is linex\nThis is line2";
      $
      $ diff -y -W 30 --suppress-common-lines <(echo -e $str1) <(echo -e $str2)
                    > This is linex
      This is line3 <
      

      受此问题和答案的启发:Bash string difference

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多