Предложения по облегченному дистрибутиву GUI [закрыто]

Хотя я понятия не имею, почему вы не хотите использовать sed -i , который делает именно то, что вам нужно, другой вариант будет perl :

$ perl -pe 's/foo/bar/g if /b*z/' food.txt 
mangoes|foo|faa  
oranges|foo|faa  
chocolates|bar|baz

-pe означает «печатать каждую строку входного файла после применения к нему скрипта.

И вы можете использовать -i , чтобы отредактировать файл на месте:

perl -i -pe 's/foo/bar/g if /b*z/' food.txt 

Также обратите внимание, что регулярное выражение b * z означает «соответствие 0 или более b , за которым следует z . Здесь он будет работать, потому что b * z соответствует bar , игнорируя b и a и просто сопоставляя z . Другими словами, он будет соответствовать любому z , поскольку любой z будет примером 0 b , за которым следует z . Я думаю, что вы, вероятно, имеете в виду использовать b.* z (ab, за которыми следуют 0 или более символов, а затем az):

perl -i -pe 's/foo/bar/g if /b.*z/' food.txt 
-1
13.04.2017, 15:36
0 ответов

Теги

Похожие вопросы