[linux] 표준 입력에서 읽기 위해 sed를 어떻게 얻습니까? [복제]

나는 노력하고있다

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에 대한 입력으로 제공되는 것으로 보입니다. 아주 이상한.



답변

–expression 옵션 사용

grep searchterm myfile.csv | sed --expression='s/replaceme/withthis/g'


답변

“-e”를 사용하여 sed-expression 지정

cat input.txt | sed -e 's/foo/bar/g'


답변

sed파일 대신 stdin에서 catch를 수행 하려면 -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


답변

  1. 다음을 사용하여 파일 열기 vi myfile.csv
  2. 프레스 Escape
  3. 유형 :%s/replaceme/withthis/
  4. 입력 :wq하고 누르십시오.Enter

이제 파일에 새 패턴이 생깁니다.


답변