2014-02-20 156 views
2

我有一个文件名abc.TXT。该文件的内容是删除字符串中的第一个字符

./pub/index.html 
./manifest.bak 
./manifest.rel 
./ns/GSCT_ASNShipmentInfo_E1/node.idf 
./ns/GSCT_ASNShipmentInfo_E1/E1/svcUpdateVR01ForOP/flow.xml.bak 
./ns/GSCT_ASNShipmentInfo_E1/E1/svcUpdateVR01ForOP/node.ndf 
./ns/GSCT_ASNShipmentInfo_E1/E1/svcUpdateVR01ForOP/flow.xml 

我想从每行删除。(点)并将内容保存到一个新的文件bcd.TXT。 在bcd.TXT内容应

/pub/index.html 
    /manifest.bak 
    /manifest.rel 
    /ns/GSCT_ASNShipmentInfo_E1/node.idf 
    /ns/GSCT_ASNShipmentInfo_E1/E1/svcUpdateVR01ForOP/flow.xml.bak 
    /ns/GSCT_ASNShipmentInfo_E1/E1/svcUpdateVR01ForOP/node.ndf 
    /ns/GSCT_ASNShipmentInfo_E1/E1/svcUpdateVR01ForOP/flow.xml 
+0

文件bcd.TXT内容应该是 – user3329128

回答

1

随着sed

$ sed 's/.//' abc.TXT > bcd.TXT 
$ cat bcd.TXT 
/pub/index.html 
/manifest.bak 
/manifest.rel 
/ns/GSCT_ASNShipmentInfo_E1/node.idf 
/ns/GSCT_ASNShipmentInfo_E1/E1/svcUpdateVR01ForOP/flow.xml.bak 
/ns/GSCT_ASNShipmentInfo_E1/E1/svcUpdateVR01ForOP/node.ndf 
/ns/GSCT_ASNShipmentInfo_E1/E1/svcUpdateVR01ForOP/flow.xml 

sed s/.//替换字符什么也没有一次线。也就是说,它会删除第一个字符。

+0

太感谢你了fedorqui! – user3329128

+0

现在我看到你可能想要删除第一个字符的方法......如果它是一个点。那么,我的回答是基于样本输入和标题。如果需要删除该行的开始处的点,请执行转义操作:'sed's /\.//'abc.TXT> bcd.TXT' – fedorqui

+0

Errr我为完整性添加了我的评论,无需不接受jaypal的答案! – fedorqui

1

fedorqui的回答将删除任何第一个字符。所以,如果你不知道这是否是一个.,那么你可以告诉sed,只除去如果你看到一个.

使用:

sed 's/^\.//' abc.TXT > bcd.TXT 

告诉sed,如果我的文件的第一个字符(记与^)是一个文字.(用\.表示),然后将其替换为无。

如果您想对现有文件进行更改,您可以使用-i选项。这将使你的文件发生变化。

0

用awk

awk '{sub(/^\./,X)}1' abc.TXT > bcd.TXT 
0

使用perl:

perl -pe 's/\.//' abc.TXT > bcd.TXT 

对于地方更换:

perl -pi -e 's/\.//' abc.TXT 
相关问题