2017年2月25日

行頭にTabを挿入するには?(sedコマンド)

テキストファイルのすべての行頭にTabを挿入したいときがあります。sedコマンドを使うと、一息でTabを挿入できます。例えば、以下のようなファイルがあるとします。

$ cat testfile
978  2017/02/09 10:07:34 which g++
979  2017/02/09 10:10:08 cd code
980  2017/02/09 10:10:09 ls
981  2017/02/09 10:10:14 vi hello.cpp
982  2017/02/09 10:11:11 rm hello

Tabを1つ挿入するには、次のようにします。実行結果は画面上に出力されます。

$ sed 's/^/\t/' testfile
        978  2017/02/09 10:07:34 which g++
        979  2017/02/09 10:10:08 cd code
        980  2017/02/09 10:10:09 ls
        981  2017/02/09 10:10:14 vi hello.cpp
        982  2017/02/09 10:11:11 rm hello

「s/A/B/」で、文字列Aを文字列Bに置換します。Aの部分「^」は行頭を表す正規表現です。Bの部分「\t」はTabを示す記号です。「\t\t」とすると、Tabが2つ挿入されます。

$ sed 's/^/\t\t/' testfile
                978  2017/02/09 10:07:34 which g++
                979  2017/02/09 10:10:08 cd code
                980  2017/02/09 10:10:09 ls
                981  2017/02/09 10:10:14 vi hello.cpp
                982  2017/02/09 10:11:11 rm hello

実行結果を保存するには、リダイレクトで新たなファイルに保存するか、sedコマンド実行時に-iオプションを指定して元ファイルを上書きします。

$ sed -i 's/^/\t/' testfile



0 件のコメント:

コメントを投稿