
基本上我想檢查同一文件前後的差異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