Привет всем У меня есть код нижеНайти и заменить каждый второй с SED вхождение
находке. -type f -exec sed -i 's @ EText-No. @ New EText-No. @g '{} +
Я использовал сценарий для поиска и замены некоторых символов в нескольких файлах в папках и подпапках. Я обнаружил, что некоторые значения происходят более чем в два раза. Поэтому мне нужно изменить свой сценарий, чтобы заменить только второй экземпляр атрибута
найти. -типа е -exec СЕПГ -i '/Subject/{:a;N;/Subject.*Subject/!Ta;s/Subject/SecondSubject/2;}/g' {} +
Я пытаясь использовать вышеприведенный код, чтобы достичь этого .. но, похоже, он не работает. Мне нужно изменить код для работы с «@» в качестве seperatore, как приведенный выше код. потому что у меня есть обратные знаки в моем файле. Любая идея, как я могу заставить код работать и использовать sperator @?
Спасибо за вашу помощь
оригинальный файл перед обработкой
<tr><th scope="row">Subject</th><td>United States -- Biography</td></tr><tr><th scope="row">Subject</th><td>United States -- Short Stories</td></tr><tr><th scope="row">EText-No.</th><td>24200</td></tr><tr><th scope="row">Release Date</th><td>2008-01-07</td></tr><tr>
После обработки
<tr><th scope="row">Subject</th><td>United States -- Biography</td></tr><tr><th scope="row">SecondSubject</th><td>United States -- Short Stories</td></tr><tr><th scope="row">EText-No.</th><td>24200</td></tr><tr><th scope="row">Release Date</th><td>2008-01-07</td></tr><tr>
Пожалуйста, обратите внимание, что второй Subject изменяется от 'Тема' в ' SecondSubject '
'find. -type f -exec sed -i 's @ Subject @ {: a; N; /Subject.*Subject/! Ta; s/Subject/SecondSubject/2;} @ g' {} + ' – Udy
Исправить заголовок или текст. Вы хотите «заменить каждое второе появление» или «заменить только второй экземпляр»? – Cyrus
Спасибо Cyrus Мне нужно заменить каждое второе появление –