2014-03-05 83 views
0

如何削减以及从文件BASH如何削减,并覆盖从文件BASH某一段

含量dl.txt覆盖某一部分:“127 www.example.com”

我曾尝试过:

#cat dl.txt|egrep -v "^[0-9]+.[ ]" > dl.txt 
#cat dl.txt|egrep "www.example.com" > dl.txt 

这可能是在awk中完成的吗?

+0

什么就是你们的榜样输出? – cmh

+0

剪切和覆盖什么? – user3004356

+0

命令后必须是dl.txt文件吗? –

回答

0

如果你的意思是你要改变的文件dl.txt的内容,并删除“127”,您可以使用SED:

sed -i.bak 's/127. //' dl.txt 

然后你会看到dl.txt改变和dl.txt.bak是备份副本。

同样,如果你想删除“www.example.com”

sed -i.bak 's/www.example.com//' dl.txt 

或者,如果你想删除一切直到并且包括在每行的空间:

sed -i.bak 's/.* //' dl.txt 

或者用awk:

awk '{print $1}' dl.txt 
127. 

awk '{print $2}' dl.txt 
www.example.com 

或者你可以像这样awk完成这件事几乎在原地,只覆盖原有如果T他AWK是成功的:

awk '{print $2}' dl.txt > $$.tmp && mv $$.tmp dl.txt 
+0

谢谢,这个答案是亲! – Infinite

+0

快乐。请接受它,所以我得到一个可爱的大绿色勾:-) –

+0

啊完成谢谢 (: – Infinite

0

下面应该摆脱的127网址之前,或任何IP地址为此事:

sed -i 's/[0-9]\+\.\?\s*//g' dl.txt 
+3

(1)无用的猫。 (2)您正在截断输入文件。 – devnull

+0

感谢您花时间看我的帖子(这是我正在尝试做的 – Infinite