私は伝統的なものを使用するのが好きですex
ファイル内のテキストを並べ替えるための簡単なコマンドライン操作用のエディタです。たとえば、ファイル内の単純な行移動には、次のようなものを使用します。
foo
bar
zoo
dude
私がしたdude
後にテキストを移動してください。foo
printf '%s\n' '/dude' 'd' '/foo' '-' 'put' 'wq' | ex file
これは、パターンに移動してdude
行をバッファに入れ、その後に貼り付けてファイルを閉じることをfoo
意味します。wq
これまではうまくいきますが、ファイルにカスタムテキストを挿入したいと思います。
example
//commented
abc
def
//commented
パターンが一致したら、上に別のテキストを追加する必要がありますabc
。つまり、ファイルにパターンがあり、存在から始まる別の行を追加した場合は、abc
次のようになります。//
//new text
example
//new text
//commented
abc
def
テキスト挿入を使用して以下で次の操作を試しましたが、itextESC
機能しません。
printf '%s\n' '/abc' '-' '/\/\/' 'itextESC' 'wq' | ex file
ed
このツールを機能させたり、ex
このツールの詳細を確認したいと思います。ed/ex
こんな些細な作業に活用していただければ幸いです。
答え1
ビジュアルコマンドがモードで動作することを期待しないでくださいex
。ex
テキストを挿入するには、a
[pend]とi
[nsert]の実際のコマンドを使用してください。
printf '%s\n' '/abc' '-' '/\/\/' 'i' 'text' '.' 'wq' |以前のファイル
追加読書
- デール・ドハティとチーム・オライリー(1987)。 「シニアエディタ」。Unixテキスト処理。ヘイデンブックス。