sed(正規表現を使用)を使用して指定された文字列(数学で始まる)を特定の位置(列20)に移動するにはどうすればよいですか。各行の数学で始まる文字列を20列に移動し、数学文字列が常に行の最後の単語になるようにしたいと思います。
how are you math123
good math234
try this math500
ベストアンサー1
もしあなたが本当に〜しなければならない使用sed
可能なアルゴリズムの1つは、文字列の前にmath
18文字以下のスペースを追加することです。
$ sed -e :a -e 's/\(^.\{,18\}\)math/\1 math/; ta' file
how are you math123
good math234
try this math500
文字列の最後の項目だけを移動するには、文字列を行の末尾に固定するだけです。たとえば、次のようなものが与えられました。
$ cat file
how are you math123
good math234
try this math500
math101 is enough math
それから末尾の空白がない場合
$ sed -e :a -e 's/^\(.\{,18\}\)\(math[^[:space:]]*\)$/\1 \2/; ta' file
how are you math123
good math234
try this math500
math101 is enough math
sed
拡張正規表現パターンがある場合は、次のように単純化できます。
sed -E -e :a -e 's/^(.{,18})(math[^[:space:]]*)$/\1 \2/; ta'