У меня есть файл с записями нижеSED несколько замен с диапазоном линии
user1,fuser1,luser1,[email protected],data,user1
user2,fuser2,luser2,[email protected],data,user2
user3,fuser3,luser3,[email protected],data,user3
Я хотел, чтобы выполнить некоторые текстовые замены из
user1, fuser1, luser1, user1 @ test.com, данные, user1
в
New_user1, New_fuser1, New_luser1, New_user1 @ test.com, данные, New_user1
поэтому я написал ниже сценарий sed.
sed -i -e 's/user/New_user/g; s/fuser/New_fuser/g; s/luser/New_luser/g' file
Это работает отлично. Теперь у меня есть требование, которое я хочу заменить в определенном диапазоне строк.
start=2
end=3
sed -i -e ''${start},${end}'s/user/New_user/g; s/fuser/New_fuser/g; s/luser/New_luser/g' file
, но эта команда заменяет шаблон во всех строках. Пример вывод,
user1,New_fuser1,New_luser1,[email protected],data,New_user1
user2,New_fuser2,New_luser2,[email protected],data,New_user2
user3,New_fuser3,New_luser3,[email protected],data,New_user3
Похоже, диапазон становится применяется только к первому выражению и остальные выражения становятся применены на весь файл. Как применить этот диапазон ко всем выражениям?
Я не думаю, что скрипт 'sed' _w orks perfect_: 'New_user1, fNew_user1, lNew_user1'. Каков ваш ожидаемый результат с этими входными данными? –