sed または awk を使用して、書式設定されたテキストの行の途中にゼロを追加したいと思います。
入力ファイルの例
line 1
line 2
line 3
期待される出力
line 01
line 02
line 03
あなたの質問にはいくつかのあいまいさがありますが、with を使用printf
しawk
て 2 番目のフィールドにゼロを埋め込むのはどうですか:
$ awk 'NF==2 { printf "%s %02d\n", $1, $2}' file
line 01
line 02
line 03
line 10
line 100
$ awk 'NF==2 { printf "%s %04d\n", $1, $2}' file
line 0001
line 0002
line 0003
line 0010
line 0100
空白行を削除したくない場合は、awk 'NF==2 { printf "%s %04d\n", $1, $2} NF!=2' file
.
awk 'NF==2{$2="0"$2}1' your_file
以下を含む/tmp/fooが与えられた場合:
line 1
line 2
line 3
sed 's/[[:digit:]]/0&/' /tmp/foo
次の出力を取得するために呼び出すことができます。
line 01
line 02
line 03
awk では、これは非常に簡単です。
awk '{print $1, 0$2}' input.txt > output.txt
この場合、あなたが示した入力テキストはファイルinput.txt
にあり、新しいファイルに保存しましたoutput.txt
。
これもわかりやすいコマンドです。変数は「$1
行」テキストであり、$2
変数は番号です。このコマンドは、「行」テキストにスペースがないことを前提としています。ある?
投稿された質問に対する最も簡単な答えは次のとおりです。
sed 's/ / 0/'
それでもうまくいかない場合は、考慮しなければならないことがたくさんあるので、より代表的な入力と予想される出力を投稿してください。
これはうまくいくかもしれません(GNU sed):
sed 's/\</0/2' file