藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 應用編程


    

藍森林 http://www.lslnet.com 2006年6月26日 11:18


請教文本文件的修改替換問題。

a.txt
------------------
01 02 * * *  /home/lhj/listA.sh
03 04 * * *  /home/lhj/listB.sh
----------
我想對以上的文本文件進行修改,修改含有listA(listA可以又參數傳入)字符串的一行,我想是不是先刪除這行,然後添加另外一行。請教怎麼寫

請教文本文件的修改替換問題。

sed -i "s/${var}/string/g" a.txt

請教文本文件的修改替換問題。

具體想怎麼改?
[code]
vim file
:g/listA/後面接想要做的修改操作
[/code]

請教文本文件的修改替換問題。

比如要將第一行listA替換為Clist的話,可以用如下命令實現
#perl -p -i -e 's/listA/Clist/' a.txt

請教文本文件的修改替換問題。

樓主的意思是listA這個字符串可能是一個傳入的變量:)

請教文本文件的修改替換問題。

我是想把含有listA的整行全部替換成另外一個字符串。怎麼修改啊,或者先把這個整行刪除也行,然後我可以用>>方法寫入一行的。

請教文本文件的修改替換問題。

請教文本文件的修改替換問題。

sed -i 's/.\+listA.\+/string/' a.txt

請教文本文件的修改替換問題。

那就這樣,比如你想把有listA的行替換成Clist的話:
perl -p -i -e 's/.*listA.*/Clist/' a.txt

請教文本文件的修改替換問題。

謝謝,還有個問題,就是如果listA不存在a.txt中,則不替換,直接添加一行字符串。這個不存在怎麼判斷?

請教文本文件的修改替換問題。

如果sed版本高些就用

sed -i "s/源字符/你想改成的字符/g" a.txt

否則:

sed -e "s/源字符/你想改成的字符/g" a.txt > /tmp/tmp$$
rm -f a.txt
mv /tmp/tmp$$ a.txt

請教文本文件的修改替換問題。

請教文本文件的修改替換問題。

請教文本文件的修改替換問題。

................如果俺回答你的問題,怕對你以後的生活投下陰影 :D

請教文本文件的修改替換問題。

請教文本文件的修改替換問題。

那我再問這樣的方法好不好(本人對shell不是很懂)
root@zjhc411 lhj]# sed -e '/listA/s/.*/list is found/;t;$i \ listA not found ;' a.txt > b.txt
但是這樣的話,如果開始b文件為空,則最後始終只有一行。這樣不好,該如何解決謝謝?

請教文本文件的修改替換問題。

上面的語句是把
sed -e '/listA/s/.*/list is found/;t;$i \ listA not found ;' a.txt
的結果寫入b.txt
不管b.txt以前有什麼內容,都會被命令的結果覆蓋

請教文本文件的修改替換問題。

是啊,這個我知道,那如何把
dfa afd
dfa afd
listA not found ;
01 02 00 a /home/lhj/listB.sh
這樣的結果生成在a.txt文件中呢?

請教文本文件的修改替換問題。

dding~~~~~~~~~~~~~

請教文本文件的修改替換問題。

學習



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com