[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
답변
- 다음을 사용하여 파일 열기
vi myfile.csv
- 프레스 Escape
- 유형
:%s/replaceme/withthis/
- 입력
:wq
하고 누르십시오.Enter
이제 파일에 새 패턴이 생깁니다.