sed アドレスで簡単な算術演算を行うことは可能ですか? 「アドレス」マニュアルセクションから判断すると、答えはノーのようです。しかし、おそらく回避策はありますか?
たとえば、ファイルの最後から 2 行目を印刷するにはどうすればよいでしょうか。次のようなクールなものになるでしょう:
sed -n '$-1 p' file
しかし、それは明らかに機能しません...そのため、通常、最初に行を識別するために複数の sed 呼び出しを実行し、次にシェル$((expr))
を使用して計算を実行し、最後に sed を再度呼び出す必要があります。このような:
sed -n "$(($(sed -n '$ =' file)-1)) p" file
sedアドレスで算術演算を行うための「より良い」、よりコンパクトで読みやすい方法はありますか?
深刻な先延ばしの瞬間に、xterm のカラースキームをすばやく変更する小さなスクリプトを作成することにしました。アイデアは.Xresources
、開始マーカーと終了マーカーを含むファイルがあることです。
...
START_MARKER
...
END_MARKER
...
マーカーの間にあるすべてのものを削除したいが、マーカー自体は削除したくない。繰り返しますが、次のようなことを行うのは素晴らしいことです:
sed '/START_MARKER/+1,/END_MARKER/-1 d' file
...しかし、あなたはできません!