私はMINIX上でファイルの特定の行を数字で特定の文字列に置き換えたい場合はに上書きするBASHシェルスクリプトを作成します元のファイル。 stdout
には印刷されません。sed:元のファイルを上書きして番号全体を置き換えます。
ラインと置換文字列の数は、次の名前のスクリプトの変数です:私がしようとすると、
sed -i "${line}s/.*/${repstring}/" $filename
しかし:
line (e.g. 8)
repstring (e.g. "134|Wan|Cho|1988-03-20")
だから私は、次のコードを試しメートルスクリプトを実行します。メッセージを取得します。
sed: unknown option -- i
usage: sed [-aEnr] script [file ...]
sed [-aEnr] [-e script] ... [-f script_file] ... [file ...]
このファイルを編集することは可能ですか別の方法で?
p.s. sed
の出力を新しいファイルにリダイレクトしてから、新しいファイルを元のファイルに移動していることに気付いていますが、処理中に他のファイルを作成したくありません。
-iパラメータが無効であるようです。 sedのmanページを見てください。 -iパラメータには拡張子が必要です。この場合、追加する必要はありません。 –
私はちょうどここでそれについて読んでいます:http://www.grymoire.com/Unix/Sed.html#uh-62h しかし、私は 'pkgin update'と' pkgin install sed'を試しましたが、データベースがアップしています-現在まで。その拡張機能を手動でインストールする適切な方法は何ですか? –
@ClaudioCorsi '-i'オプションは、インプレース編集を実行するために拡張子を必要としませんが、拡張子(例えば' -i.bak'など)を追加すると元のファイルのバックアップが作成されます。 .bak拡張子。 – assefamaru