私は/opt/tin/tossのいくつかの行を置き換えるためにsedなどを使ってみました。 *
例えば
37 7 * * * /opt/tin/toss
43 7 * * * /opt/tin/te1
58 7 * * * /opt/tin/test2
出力:
37 * * * * /opt/tin/toss
43 7 * * * /opt/tin/te1
58 7 * * * /opt/tin/test2
通常、7はランダムに生成され、0から24までの2、4、または8のいずれかです。
答え1
sed '/\/opt\/tin\/toss/ s/^\([^ ]* \+\)[^ ]*\( .*\)$/\1*\2/'
次のように読むことができます。
可能であれば、/opt/tin/toss
一致するパターンを交換してください。
^
行の始まり、その後
\([^ ]* \+\)
\(
任意の数の文字で構成される最初のグループ[^ ]*
(最大1つ以上のスペース)\+
、次のグループの終わり\)
[^ ]*
次は[^ ]*
宇宙まで何でも来る
\( .*\)
\( .*\)$
その後、一致する2番目のスペースセットが続き、最後まですべてが続きます。
そして
/\1*\2/
最初のグループ、次に*
2番目のグループ。
答え2
sedの例
sed 's/^\([0-9]*\) [0-9]* *\(\* *\* *\* *\/opt\/tin\/toss.*\)$/\1 * \2/'
これは\([0-9]*\)
最初の数字と一致し、値を保持します。\1
これは\(\* *\* *\* *\/opt\/tin\/toss.*\)
コマンドラインの最後の3つの星と一致し、その値を保持します。\1