SEDエラー:-bash:sed -is / ashu / vishu / test.txt:そのファイルまたはディレクトリがありません。

SEDエラー:-bash:sed -is / ashu / vishu / test.txt:そのファイルまたはディレクトリがありません。

MacBook Airでiterm2を介してリモートHPCにアクセスしています。上記のコマンドがうまく動作する場合もありますが、エラーが発生することもあります。誰でも私のエラーを特定するのに役立ちますか?私は次の形式に従います。

sed -i 's/search_string/replace_string/' filename

sed -i 's/ashu/vishu/' test.txt 

答え1

-imacOSの非標準オプションは、sedバックアップファイルの作成に使用されるファイル名のサフィックスである必須引数を使用します。

macOSで内部編集を使用する場合いいえバックアップファイルの場合は、空のバックアップサフィックスを使用してください。

sed -i '' 's/ashu/vishu/' test.txt

ただし、これはGNUに誤った結果をもたらし、どの実装を使用するかについてのsed質問では明確ではありません。sed

到着持ち運べる内部で編集するには、次のコマンドを使用します。

cp test.txt test.txt.tmp &&
sed 's/ashu/vishu/' <test.txt.tmp >test.txt &&
rm -f test.txt.tmp

つまり、元のファイルを一時的な名前でコピーします。その後、ジョブはsed一時的な名前付きファイルに適用され、出力を元のファイルにリダイレクトします。次に一時的な名前を削除します。

上記のようにタスク間を使用すると、前の&&ステップが正常に完了しない限り、どのステップも実行されません。

また見なさい:

関連情報