删除字符串中的第一个字符
我有一个文件名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
随着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/.//
替换字符什么也没有一次线。也就是说,它会删除第一个字符。
太感谢你了fedorqui! – user3329128
现在我看到你可能想要删除第一个字符的方法......如果它是一个点。那么,我的回答是基于样本输入和标题。如果需要删除该行的开始处的点,请执行转义操作:'sed's /\.//'abc.TXT> bcd.TXT' – fedorqui
Errr我为完整性添加了我的评论,无需不接受jaypal的答案! – fedorqui
fedorqui的回答将删除任何第一个字符。所以,如果你不知道这是否是一个.
,那么你可以告诉sed
,只除去如果你看到一个.
使用:
sed 's/^\.//' abc.TXT > bcd.TXT
告诉sed
,如果我的文件的第一个字符(记与^
)是一个文字.
(用\.
表示),然后将其替换为无。
如果您想对现有文件进行更改,您可以使用-i
选项。这将使你的文件发生变化。
用awk
awk '{sub(/^\./,X)}1' abc.TXT > bcd.TXT
使用perl:
perl -pe 's/\.//' abc.TXT > bcd.TXT
对于地方更换:
perl -pi -e 's/\.//' abc.TXT
文件bcd.TXT内容应该是 – user3329128