매개변수를 통해 문자를 제거하는 방법은 무엇입니까?

매개변수를 통해 문자를 제거하는 방법은 무엇입니까?

필터링하고 싶어요어느쉼표와어느일부 명령의 출력에 큰따옴표가 있습니다. 일부 항목의 경우.

의사코드:

removechar --any -, -"

현재 출력은 다음과 유사할 수 있습니다.

lorem, ipsum " 돌로,"
",,lorem,, ipsum ,,, """ 돌로","
,lorem ipsum ,,, """ 돌로,

원하는 출력:


로렘 입숨 돌로르 로렘 입숨 돌로르 로렘 입숨 돌
로르

고쳐 쓰다

추가 공백 문자를 제거해야 할 수도 있습니다. 예를 들면 다음과 같습니다.

a, b" 

될 것입니다

ab

질문

매개변수를 통해 문자를 제거하는 방법은 무엇입니까?

답변1

당신이 사용할 수있는 tr:

<input tr -d ',"' >output

또는 쉼표와 따옴표 문자를 제거하세요.그리고원하는 출력에 표시된 대로 인접한 공간을 압축합니다.

<input tr -d ',"' | tr -s ' ' >output

또는 더 일반적으로 모든 구두점을 제거하고 모든 가로 공백을 압축합니다.

<input tr -d '[:punct:]' | tr -s '[:blank:]' >output

답변2

sed, 아주 기본적인 정규 표현식을 공부해야 합니다 .

sed  's/[, \'"´`]//g'

문법이 있다

sed  's/[, \'"´`]//g'
      ^-------------- s like search&replace
       ^------------- the thing we want to search for and what we 
                      replace it with are separated by /
        ^-------^---- [] in a regular expression means
                      "any of the things in these []"
         ^^^^^^^----- in this case, the things to replace are commas,
                      spaces, single quotes, double quotes, slanted
                      quotes
                 ^--- next thing is what we replace it with
                  ^-- we replace with nothing
                   ^- g is an option that means
                      "repeat until you're done on each line"

답변3

다음과 같은 작업이 수행됩니다.

 sed 's/"//g; s/,//g' input_file >output_file

관련 정보