1

mysqlクエリからプリントアウトファイルを作成し、すべてのTOTAL文字列の後に次の区切り行を挿入します。

sed -i /^TOTAL/i'-------------------------------------------------- ' file.txt

入力する代わりにn個の「-」文字を繰り返すよりエレガントな方法はありますか?

たとえば、検索/挿入せずに単純に行を生成する必要がある場合は、次を使用します。

echo -$-{1..50} | tr -d ' '

しかし、sedをファイルに入れるのと同じようなことをする方法がわかりません。

ありがとう!

4

3 に答える 3

4

2つを組み合わせるだけです。

sed -i /^TOTAL/i"$(echo -$___{1..50} | tr -d ' ')" file.txt
于 2013-02-25T17:37:27.803 に答える
3

組み込みprintfおよびbashブレース拡張を使用する別の方法:

sed -i "/^TOTAL/i $(printf '%.0s-' {0..50})" file.txt
于 2013-02-25T22:39:53.243 に答える
2

を使用すると、文字をN回繰り返すことができます。以下を参照してください。

perl -pe 's/^TOTAL.*/"-"x50 . "\n$&"/e' file.txt

また :

perl -pe 's/^TOTAL.*/sprintf("%s\n%s", "-"x50, $&)/e' file.txt

構文をに近づけますsed

于 2013-02-25T17:38:29.537 に答える