追加読書

追加読書

私は伝統的なものを使用するのが好きです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

ビジュアルコマンドがモードで動作することを期待しないでくださいexexテキストを挿入するには、a[pend]とi[nsert]の実際のコマンドを使用してください。

printf '%s\n' '/abc' '-' '/\/\/' 'i' 'text' '.' 'wq' |以前のファイル

追加読書

  • デール・ドハティとチーム・オライリー(1987)。 「シニアエディタ」。Unixテキスト処理。ヘイデンブックス。

関連情報