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 のマニュアルページを参照してください。