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