Mos*_*she 3 diff here-document here-string
基本上我想检查前后相同文件的差异 sed
试图运行:
diff /opt/postTrades.sh <<< $(sed 's/1\ MIN/10\ MIN/g' /opt/postTrades.sh)
Run Code Online (Sandbox Code Playgroud)
和
diff <<< $(sed 's/1\ MIN/10\ MIN/g' /opt/postTrades.sh) < /opt/postTrades.sh
Run Code Online (Sandbox Code Playgroud)
和
diff <<< (sed 's/1\ MIN/10\ MIN/g' /opt/postTrades.sh) < /opt/postTrades.sh
Run Code Online (Sandbox Code Playgroud)
总是得到:
diff: missing operand after '/opt/postTrades.sh'
diff: Try 'diff --help' for more information.
Run Code Online (Sandbox Code Playgroud)
正确的做法是什么?谢谢。
diff
需要两个文件操作数。使用此处字符串,您可以将输入传递给diff
其标准输入。
要从diff
标准输入读取,请-
用作文件名:
$ diff file - <<<"$( sed 'expression' file )"
Run Code Online (Sandbox Code Playgroud)
或者,更便携的是,
$ sed 'expression' file | diff file -
Run Code Online (Sandbox Code Playgroud)
如果您使用的 shell 支持进程替换<(...)
,例如bash
和ksh93
,这可能是另一种解决方案:
$ diff file <( sed 'expression' file )
Run Code Online (Sandbox Code Playgroud)
进程替换将显示为一个文件,diff
并且实际上“与”相同:
$ sed 'expression' file >tempfile
$ diff file tempfile
$ rm tempfile
Run Code Online (Sandbox Code Playgroud)