필터링하고 싶어요어느쉼표와어느일부 명령의 출력에 큰따옴표가 있습니다. 일부 항목의 경우.
의사코드:
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