ドル記号()を含むtest_output_archive.svdファイルがあります$
。ドル記号をポンド()に置き換えるcatコマンドを使用して、シェルスクリプトInstall_dollar_pound.shを作成しました£
。このスクリプトは Solaris 10 で実行され、ドルは予想通りに変更されました。 Solaris 11では、USDは置き換えられず、エラーは発生しません。
test_output_archive.svdの内容: ラインレンタル $9 OOBのみ $10
手順1でドル記号をポンドに変更し、手順2でジャンク文字を削除し、手順3で一時ファイルを削除し、手順4で名前を変更します**
Install_dollar_pound.shの内容: catテスト出力archive.svd | tr "\044" "\243" > temp_archive.svd cat temp_archive.svd | tr "\044" "\243" > temp_archive.svd tr -d "\302" > test_output_archive2.svd rm temp_archive.svd mv test_output_archive2.svd test_output_archive.svd
オペレーティングシステムをSolaris 11にアップデートするときに修正が必要ですか?
答え1
正規表現では特別な意味を持ち$
、これは「レコードの終わり」(ほとんどの場合レコード==行)を意味します。だから脱出する必要があります。この試み:
sed 's/\$/£/g' file > outfile
答え2
sedコマンドで特殊文字($)をエスケープできます。
$ cat test.txt
£ pound £
$ dollar $
£ pound £
$ dollar $
$ sed 's/\$/£/g' test.txt
£ pound £
£ dollar £
£ pound £
£ dollar £
またはできます
$ sed 's/[$]/£/g' test.txt
£ pound £
£ dollar £
£ pound £
£ dollar £