Используя sed для удаления знака равенства из файла
Я пытаюсь использовать sed, чтобы удалить знаки равенства из этого файла и передать его в новый файл:
I am a file to be edited.
A unique file with my own words.
T=h=e=r=e a=r=e i=s=s=u=e=s w=i=t=h t=h=i=s l=i=n=e
Я старался cat FixMeWithSed.txt | sed 's/=//' > FileFixedWithSed.txt
но он заменил только первый знак равенства.
I am a file to be edited.
A unique file with my own words.
Th=e=r=e a=r=e i=s=s=u=e=s w=i=t=h t=h=i=s l=i=n=e
Я не уверен, как выбрать все знаки равенства вместо только первого. Спасибо!
2 ответа
Решение
Вы должны использовать g
флаг, чтобы сделать глобальную замену. В противном случае, это происходит только один раз.
cat FixMeWithSed.txt | sed 's/=//g' > FileFixedWithSed.txt
Кстати, sed
можно читать из файла, поэтому вам не нужно cat
Вот:
sed 's/=//g' FixMeWithSed.txt > FileFixedWithSed.txt
Ты можешь использовать
sed -i "s/=//g" file.in
заменить = на тот же файл, не создавая новый. В противном случае вы даже можете использовать
tr -d '=' < file.in > file.out