Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
シェル機能が非常に限られている UNIX システムでログ ファイルを短縮したいと考えています。これを行うための私の好ましい方法は、ed.
ed
一定数の行を削除するとうまくいきます:
ed -s file.txt <<< $'1,4d\nwq'
しかし、ワンライナーのシェル変数から削除する行数edを拡張するにはどうすればよいですか? 私は次のようなものを探しています:
n_del=4; ed -s file.txt <<< $'1,\${n_del}d\nwq'
シェルでは、さまざまな方法で引用され、引用されていない文字列を連結することは完全に正常ですが、次のようになります。
$ n_del=4; ed -s test <<< "1,${n_del}"d$'\n'wq
here-doc は、ここではワンライナーよりもクリーンになると思います。
$ n_del=4 $ ed -s test <<_EOF 1,${n_del}d wq _EOF