sedを使用して正規表現を使用してファイルのキーを置き換える方法は?

sedを使用して正規表現を使用してファイルのキーを置き換える方法は?

キーが次のようにファイルにあるとし、キーを置き換えるためにファイルを変更したいと思います。

42NM
52NM
23NO
XNNM

「ok」という言葉の代わりにNMを使いたいです。

 1 #!bin/bash/
 2 
 3 if [ -f KeyFile]
 4 then
 5         sed 's/[0-9][0-9]NM/Okay/g' KeyFile
 6 else
 7         echo "File does not exist or cannot be found."
 8 fi
 9 
10 exit 0

私は次のコマンドを実行しました。

chmod a+x FindKeys

その後、スクリプトを実行しようとすると、次の結果が表示されます。

-bash-3.00$ ./FindKeys
-bash: ./FindKeys: bin/bash/: bad interpreter: No such file or directory

2つの問題があるようです。 1つはスクリプトファイルが正しく実行されないことで、2つ目はコマンドがsed機能しないことです。

ベストアンサー1

1号線:ハッシュバンラインが正しくありません。以下を使用してください。

#!/bin/bash

3号線:ユーティリティ注test(最後の前にスペースが必要です]):

if [ -f KeyFile ]

5号線sed:コマンドで-i有効な内部編集を使用しますsed。それ以外の場合、編集内容は単に標準出力として印刷されます。

sed -i 's/[0-9][0-9]NM/Okay/g' KeyFile

おすすめ記事