1

シェル機能が非常に限られている UNIX システムでログ ファイルを短縮したいと考えています。これを行うための私の好ましい方法は、ed.

一定数の行を削除するとうまくいきます:

ed -s file.txt <<< $'1,4d\nwq'

しかし、ワンライナーのシェル変数から削除する行数edを拡張するにはどうすればよいですか? 私は次のようなものを探しています:

n_del=4; ed -s file.txt <<< $'1,\${n_del}d\nwq'
4

1 に答える 1

3

シェルでは、さまざまな方法で引用され、引用されていない文字列を連結することは完全に正常ですが、次のようになります。

$ 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
于 2014-09-09T11:03:20.380 に答える