我有一个文件名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 :(得分: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/.//
每行替换一个字符。也就是说,它删除了第一个字符。
答案 1 :(得分:1)
fedorqui的回答将删除任何第一个字符。因此,如果您不确定它是否为.
,那么只有当您看到sed
.
使用:
sed 's/^\.//' abc.TXT > bcd.TXT
告诉sed
如果我的文件的第一个字符(用^
表示)是文字.
(用\.
表示),则将其替换为空。
如果要在现有文件中进行更改,可以使用-i
选项。这将在您的文件中进行更改。
答案 2 :(得分:0)
使用awk
awk '{sub(/^\./,X)}1' abc.TXT > bcd.TXT
答案 3 :(得分:0)
使用perl:
perl -pe 's/\.//' abc.TXT > bcd.TXT
就地替换:
perl -pi -e 's/\.//' abc.TXT