根据https://www.computerhope.com/unix/udiff.htm
该
diff命令分析两个文件并打印不同的行。
我可以使用相同的diff命令来比较两个字符串吗?
$ more file*
::::::::::::::
file1.txt
::::::::::::::
hey
::::::::::::::
file2.txt
::::::::::::::
hi
Run Code Online (Sandbox Code Playgroud)
$ diff file1.txt file2.txt
1c1
< hey
---
> hi
Run Code Online (Sandbox Code Playgroud)
而不是保存的内容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
Run Code Online (Sandbox Code Playgroud)
是的,您可以diff在两个字符串上使用,如果您从它们制作文件,因为diff只会比较文件。
一种快捷方式是在支持这些的 shell 中使用进程替换:
diff <( printf '%s\n' "$string1" ) <( printf '%s\n' "$string2" )
Run Code Online (Sandbox Code Playgroud)
例子:
diff <( printf '%s\n' "$string1" ) <( printf '%s\n' "$string2" )
Run Code Online (Sandbox Code Playgroud)
在其他贝壳中,
printf '%s\n' "$string1" >tmpfile
printf '%s\n' "$string2" | diff tmpfile -
rm -f tmpfile
Run Code Online (Sandbox Code Playgroud)
在第二个示例中,一个文件包含第一个字符串,而第二个字符串diff在标准输入中给出。 diff使用包含第一个字符串的文件作为其第一个参数来调用。作为它的第二个参数,-表示它应该读取标准输入(第二个字符串将通过 到达printf)。
| 归档时间: |
|
| 查看次数: |
3067 次 |
| 最近记录: |