Ответ 1
используйте параметр --expression
grep searchterm myfile.csv | sed --expression='s/replaceme/withthis/g'
Я пытаюсь
grep searchterm myfile.csv | sed 's/replaceme/withthis/g'
и получив
unknown option to `s'
Что я делаю неправильно?
Edit:
В соответствии с комментариями код действительно правильный. Мой полный код похож на следующий
grep searchterm myfile.csv | sed 's/replaceme/withthis/g'
# my comment
И кажется, что по какой-то причине мой комментарий подавался как вход в sed. Очень странно.
используйте параметр --expression
grep searchterm myfile.csv | sed --expression='s/replaceme/withthis/g'
используйте "-e" для указания sed-выражения
cat input.txt | sed -e 's/foo/bar/g'
Чтобы сделать sed
catch из stdin, а не из файла, вы должны использовать -e
.
Вот так:
curl -k -u admin:admin https://$HOSTNAME:9070/api/tm/3.8/status/$HOSTNAME/statistics/traffic_ips/trafc_ip/ | sed -e 's/["{}]//g' |sed -e 's/[]]//g' |sed -e 's/[\[]//g' |awk 'BEGIN{FS=":"} {print $4}'
Если вы пытаетесь выполнить обновление текста внутри файла, на мой взгляд, об этом гораздо проще подумать.
grep -Rl text_to_find directory_to_search 2>/dev/null | while read line; do sed -i 's/text_to_find/replacement_text/g' $line; done
vi myfile.csv
:%s/replaceme/withthis/
:wq
и нажмите EnterТеперь у вас будет новый шаблон в вашем файле.