別のファイルがありますが、タイトルを変更したいです。現在のテーブルは次のとおりです。
MONTH GFDL.ESM2M_ECOMAG GFDL.ESM2M_HYPE
1 3546.21855483871 2345.11127781945
.
何か変えたかったのに-
タイトルだけ変わりました。したがって、私は次のような出力が欲しいです。
MONTH GFDL-ESM2M_ECOMAG GFDL-ESM2M_HYPE
1 3546.21855483871 2345.11127781945
これまでに試したコマンドの1つは次のとおりですsed
。
sed -i.bak "1,1s/./-/" file.txt
ofをにM
変更します。また、awkコマンドも試しました。"MONTH"
-
awk '(NR==1){gsub(".","-", $0);}{print;}' file.txt > jony.txt
これはヘッダー全体を一連のヘッダーに置き換えます。-
答え1
sed '1s/\./-/g' file.txt
あなたのためにそれをしなければなりません
なぜ。 ?
sed は.
sed で特別な意味を持つからです。すべての文字を一致させるために使用されます。つまり、エスケープして特別な意味を取り除く必要があります\.
。
答え2
awk
次のように使用しますgsub()
。
awk 'NR==1 {gsub("\\.", "-", $0); quit};1' file.txt
例:
$ cat file.txt
MONTH GFDL.ESM2M_ECOMAG GFDL.ESM2M_HYPE
1 3546.21855483871 2345.11127781945
$ awk 'NR==1 {gsub("\\.", "-", $0); quit};1' file.txt
MONTH GFDL-ESM2M_ECOMAG GFDL-ESM2M_HYPE
1 3546.21855483871 2345.11127781945