iconv에서 다음과 같은 출력이 있습니다.
$ iconv -l | grep ISO | head -5
CSISO4UNITEDKINGDOM//
CSISO10SWEDISH//
CSISO11SWEDISHFORNAMES//
CSISO14JISC6220RO//
CSISO15ITALIAN//
durrantm:~
을(를) 로 어떻게 //
바꿀 수 있나요 --
?
나는 노력했지만 $ (iconv -l | grep ISO).gsub('\/\/','--')
운이 없었다.
답변1
그것을 사용하는 방법은 여러 가지가 있습니다 tr
. awk
또는sed
TR:
iconv -l | grep ISO |head -5 |tr '/' '-'
AWK:
iconv -l | awk '/ISO/{gsub("//","--"); print $0}' |head -5
사회경제개발국:
iconv -l | grep ISO |head -5 | sed 's/\//-/g'
# or, to avoid needing to escape the backslashes:
iconv -l | grep ISO |head -5 | sed 's#/#-#g'
답변2
grep
다소 sed
( 의 명령 하위 집합을 grep
나타내며 [s] 스트림과 유사하게 적용됨 ) 일반적으로 함께 파이프할 필요가 없습니다.g/re/p
ed
sed
ed
iconv -l | sed '/ISO/!d;s,//,--,g' | head -n 5
답변3
sed
옵션입니다:
$ iconv -l | grep ISO | sed 's#/#-#g' | head -5
CSISO4UNITEDKINGDOM--
CSISO10SWEDISH--
CSISO11SWEDISHFORNAMES--
CSISO14JISC6220RO--
CSISO15ITALIAN--
답변4
이를 수행하는 방법은 여러 가지가 있지만 기본적으로 출력을 억제하려면 sed
aka -n
또는 --quiet
옵션을 사용하겠습니다.--silent
iconv -l | sed -n -e '/ISO/ s://:--:p'
이 sed 스크립트는 "ISO"가 포함되지 않은 행을 무시하고 //를 --로 변경한 후 (수정된) 일치하는 행을 인쇄합니다. 스크립트의 마지막 "p"는 sed에게 일치하는 줄을 인쇄하라고 지시합니다.
보기 흉한 백슬래시 탈출을 피하기 위해 :
대신 정규식 구분 기호를 사용했습니다./
자세한 내용은 sed 매뉴얼 페이지를 참조하십시오.