0
我試圖替換自己的文件的第3列加上列2的值(沒有任何空格)。我得到變量c和a的正確值,但sed
沒有給出任何輸出。任何線索?tcsh和sed:沒有輸出
#!/bin/tcsh
setenv c `cat lig_mod.pdb | awk '{print $3}'`
echo $c
setenv a `cat lig_mod.pdb | awk '{print $3=$3$2}'`
echo $a
sed -i "" 's/^'"${c}"'$/^'"${a}"'$/g' lig_mod.pdb
'sed'命令正在對文件進行操作(來自'-i')。它也與'c'的值本身相匹配,是你想要的嗎?它也會用'^ $'替換那一行,這可能不是你想要的。 –
如果我將-i替換爲-e(sed不適用),我也沒有在文件中進行任何更改。 – schrodingersbird
如果您刪除'-i',則'sed'不會更改文件並將其發送到標準輸出。我無法分辨您是否正在尋找標準輸出,並且之前沒有看到它,所以我把它扔進去了。阻止變化發揮作用的主要問題是您的模式和替換都不正確,正如我也指出的那樣。模式中的^ ^匹配行的開始,而不是「單詞」的開始。行尾的'$'相同。 –