sed を使用して、指定された文字列を指定された位置に移動します。

sed を使用して、指定された文字列を指定された位置に移動します。

sed(正規表現を使用)を使用して指定された文字列(数学で始まる)を特定の位置(列20)に移動するにはどうすればよいですか。各行の数学で始まる文字列を20列に移動し、数学文字列が常に行の最後の単語になるようにしたいと思います。

how are you math123 
good math234
try this math500 

ベストアンサー1

もしあなたが本当に〜しなければならない使用sed可能なアルゴリズムの1つは、文字列の前にmath18文字以下のスペースを追加することです。

$ 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'

おすすめ記事