ProgramingTip

입력 파일이 아닌 리터럴 언어로 sed

bestdevel 2020. 11. 1. 18:27
반응형

입력 파일이 아닌 리터럴 언어로 sed


이것은 간단해야 합니다. 입력 파일이 아닌 리터럴에 대해 sed 를 실행하고 싶습니다 . 이유가 궁금하다면, 예를 들어 텍스트 데이터가 아니라 변수에 가치를 편집하는 것입니다.

내가 할 때 :

sed 's/,/','/g' "A,B,C"

여기서 A, B, C는 A ','B ','C로 변경하려는 리터럴입니다.

나는 얻다

Can't open A,B,C

마치 A, B, C가 파일이라고 생각하는 것처럼.

나는 그것을 에코하기 위해 파이핑을 시도했다.

echo "A,B,C" | sed 's/,/','/g' 

나는 그것을 포함한다.

그것을하는 올바른 방법은 무엇입니까?


작은 따옴표 충돌이 있으므로 다음을 사용하십시오.

 echo "A,B,C" | sed "s/,/','/g"

사용하는 경우 에도 할 수 있습니다 (

<<<is a here-string) :

sed "s/,/','/g" <<< "A,B,C"

하지만

sed "s/,/','/g"  "A,B,C"

sed파일을 인수로 기대 하기 때문에

편집 :

또는 다른 것을 사용하는 경우 :

echo string | sed ...

원하는대로 작동합니다.

echo "A,B,C" | sed s/,/\',\'/g

bash 펼쳐보기에서 변수를 사용하는 내 버전 :

백 슬래시를 찾아 슬래시로 바꿉니다.

input="This has a backslash \\"

output=$(echo "$input" | sed 's,\\,/,g')

echo "$output"

참고 URL : https://stackoverflow.com/questions/13055889/sed-with-literal-string-not-input-file

반응형