我正在檢查文本文件中的字符串。如果string1不存在,則在字符串2之後添加string1。否則,string1不存在。Shell腳本查找文本文件中的文本
這裏是我到目前爲止有:
if [ string1 does not exisit ] //Stuck at this
then
sed '/string2/ a\ string1' myfile
fi
又怎麼可以加入我的琴絃「/」字符?
我正在檢查文本文件中的字符串。如果string1不存在,則在字符串2之後添加string1。否則,string1不存在。Shell腳本查找文本文件中的文本
這裏是我到目前爲止有:
if [ string1 does not exisit ] //Stuck at this
then
sed '/string2/ a\ string1' myfile
fi
又怎麼可以加入我的琴絃「/」字符?
if grep -qs string1 myfile
then
sed '/string1/ a\ string2' myfile
fi
但是,你可以跳過,因爲sed
的if
是字符串的存在反正測試。這樣,你只能讀一次文件而不是兩次。如果您想要對文件進行就地更改,請使用sed -i
。
您可以使用grep
,例如像這樣:
$(grep -q "string1" myfile)
if [ $? -eq 1 ]; then
sed '/string1/ a\ string2' myfile
fi
括號和命令替換不是必需的。 '-eq 1'不會通過,因爲退出代碼不會被輸出,而是保存在'$?'中。 – 2011-03-01 17:34:40
是的,你說得對,我會修改代碼。關於括號,我喜歡把它們放在一起,即使它們不是必需的,我發現它們的代碼更具可讀性。 – krtek 2011-03-01 17:37:22
對不起,我做了一個錯字,用sed應該檢查字符串2的存在。 – Matt 2011-03-01 17:49:32