sedのe内部コマンドで指定された文字列をシェルコマンドとして実行させる
はじめに
sed
コマンドの e
内部コマンドで指定された「文字列」をシェルコマンドと見直して実行させることができます。
文章だけではわかりにくいので例を上げて説明したいと思います。
僕はこちらの機能をほとんど利用したことはありませんが、こういう機能もあるということで取り上げてみます。
検証環境
準備
テストデータを用意します。
各行に1から20の値を出力したファイルになります。
0がつく文字列のときだけ時刻を表示させる
0がつく文字列のときだけ、 date
コマンドで時刻を表示させてみます。
もともとの数値( 10
/ 20
)も表示させてしまっているため、削除ロジックも追加してみます。
sedで置換した結果をシェルコマンドとして実行する
lsof
という文字列を置換し、 ls
コマンドを実行させてみます。
少し修正し、 /etc
ディレクトリを ls
を実行させてみます。
「だからなに?」というような例になってしまいました。。。
ひとこと
今ひとつ上手い使い方が思いつかない e
内部コマンドでした。xargs
使うか、速度的には懸念があるがループを回すかしたほうがいろいろできますしわかりやすいです。
ディスカッション
コメント一覧
まだ、コメントがありません