我正在尝试
grep searchterm myfile.csv | sed 's/replaceme/withthis/g'
并获得
unknown option to `s'
我做错了什么?
编辑:
根据评论,代码实际上是正确的。我的完整代码类似于以下内容
grep searchterm myfile.csv | sed 's/replaceme/withthis/g'
# my comment
看来由于某种原因,我的评论被作为输入提供给sed。很奇怪。
答案 0 :(得分:96)
使用--expression选项
grep searchterm myfile.csv | sed --expression='s/replaceme/withthis/g'
答案 1 :(得分:22)
使用“-e”指定sed表达式
cat input.txt | sed -e 's/foo/bar/g'
答案 2 :(得分:5)
要从stdin而不是从文件中捕获sed
,您应该使用-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}'
答案 3 :(得分:0)
如果您尝试对文件中的文本进行就地更新,那么在我看来这很容易推理。
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
答案 4 :(得分:-10)
vi myfile.csv
:%s/replaceme/withthis/
:wq
,然后按 Enter 现在,您将在文件中添加新模式。