我有一個文件,我需要使用sed
來處理它。
命令在終端和腳本中有不同的操作
這是我的命令:sed -i -e '/.*tour\.html\|.*Thumb[^\/]*\.jpg/!d'
。
現在,如果我從終端執行此命令,例如,sed -i -e '/.*tour\.html\|.*Thumb[^\/]*\.jpg/!d' myfile.txt
,它運行良好。但是,如果我用相同的命令編寫bash腳本,它將刪除所有行。
#!/bin/bash
sed -i -e '/.*tour\.html\|.*Thumb[^\/]*\.jpg/!d' "$1"
該腳本將刪除文件中的所有行。
我的電腦是Mac OS。
在這兩種情況下顯示'sed --version'和'sed --help'(-i部分)的輸出。 – Yunnosch
@Yunnosch我在終端執行'sed --version',我得到了一些信息,而我在腳本中編寫了'sed --version'並執行這個腳本,出現錯誤:'sed:illegal option - -' 。那意味着我有兩種'sed'? – Yves
^^是的,你可能已經安裝了2份'sed'。根據你的'PATH'變量,'bash'在兩種情況下選擇不同的。在兩種情況下檢查'which sed'的輸出。 – anishsane