Имам файл в perl, който има следното съдържание
abc
text1
text2
text3
abc
text4
text5
abc
abc
Крайна продукция:
abc
text1
text2
text3
text4
text5
Искам да използвам perl един лайнер или скрипт, за да запазя 1-ви abc и да изтрия останалите. В моя скрипт използвам оператор за съвпадение на модели m?/abc/
за да намерите първия модел, но не можете да измислите начин да изтриете останалите. Моля, помогнете ми със същото
Отговори:
3 за отговор № 1Ако приемем, че искате да изтриете целия ред, съдържащ втората и следващите събития на abc
:
perl -ne "print if !/abc/ || !$n++" < infile > outfile
Ако искате да изтриете редове, съдържащи abc
и нищо друго, промяна /abc/
да се /^abc$/
.