2014-02-20 3 views
2

У меня есть имя файла abc.TXT. Содержимое файла являютсяУдаление 1-го символа из строк

./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

Теперь я вижу, что вам, вероятно, нужен подход к удалению 1-го символа ... если бы это была точка. Ну, мой ответ был основан на примере ввода и заголовке. В случае необходимости просто удалить точку в начале строки, избегайте ее: '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 
Смежные вопросы