Linux
使用 diff 命令比較兩個字元串?
根據https://www.computerhope.com/unix/udiff.htm
該
diff
命令分析兩個文件並列印不同的行。我可以使用相同的
diff
命令來比較兩個字元串嗎?$ more file* :::::::::::::: file1.txt :::::::::::::: hey :::::::::::::: file2.txt :::::::::::::: hi
$ diff file1.txt file2.txt 1c1 < hey --- > hi
我可以直接讀取它,而不是將其內容保存到兩個不同的文件中
hey
嗎?hi
順便說一句,在下面的範例中沒有命名
hey
或文件hi
,這就是我收到No such file or directory
錯誤消息的原因。$ diff hey hi diff: hey: No such file or directory diff: hi: No such file or directory
是的,如果你用它們製作文件,你可以
diff
在兩個字元串上使用,因為diff
只會比較文件。一種快捷方式是在支持這些的 shell 中使用程序替換:
diff <( printf '%s\n' "$string1" ) <( printf '%s\n' "$string2" )
例子:
$ diff <( printf '%s\n' "hey" ) <( printf '%s\n' "hi" ) 1c1 < hey --- > hi
在其他貝殼中,
printf '%s\n' "$string1" >tmpfile printf '%s\n' "$string2" | diff tmpfile - rm -f tmpfile
在第二個範例中,一個文件包含第一個字元串,而第二個字元串
diff
在標準輸入中給出。diff
使用包含第一個字元串作為其第一個參數的文件呼叫。作為它的第二個參數,-
表示它應該讀取標準輸入(第二個字元串將通過 到達printf
)。