MacBook Airでiterm2を介してリモートHPCにアクセスしています。上記のコマンドがうまく動作する場合もありますが、エラーが発生することもあります。誰でも私のエラーを特定するのに役立ちますか?私は次の形式に従います。
sed -i 's/search_string/replace_string/' filename
sed -i 's/ashu/vishu/' test.txt
答え1
-i
macOSの非標準オプションは、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
一時的な名前付きファイルに適用され、出力を元のファイルにリダイレクトします。次に一時的な名前を削除します。
上記のようにタスク間を使用すると、前の&&
ステップが正常に完了しない限り、どのステップも実行されません。
また見なさい: