2014-02-20 445 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 
相關問題