• ベストアンサー

先頭から8文字目に1文字挿入したい

シェルスクリプトで文章の整形をしています。 行の先頭から8文字目にスペースを挿入する方法を教えてください。 ウェブで検索したところsedコマンドでできるようですが、 シェルは初心者でなかなか読み解くことができず おもったようにできませんでした。 シェルはbashです。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#156136
noname#156136
回答No.2

例えば、 > echo "1234567890" | sed -e 's/^\(.\{8\}\)/\1 /' を実行すると、 12345678 90 となります。

nakamun
質問者

お礼

回答ありがとうございます! まさにやりたいことでした。 sedはあきらめて手間のかかる作業でやってしまいました。。。 次回から頂いた回答を参考にして効率よく作業できるようにしたいと思います。 ありがとうございました。

その他の回答 (1)

回答No.1

どんなコマンドを使うにしても >行の先頭から8文字目にスペースを挿入する方法 をどうやって実装するかが問題。 基本は ・入力から行を取り出す。 ・取り出した行が6文字以下の場合は、そのまま出力して次の行を処理する。 ・取り出した行が7文字以上の場合は以下の処理をする。 ・取り出した行の1文字目から7文字目までを切り出す(1)。 ・取り出した行の8文字目から末尾までを切り出す(2)。 ・切り出した(1)と「半角スペース」と切り出した(2)を連結する。 ・連結したものを1行として出力する。 ・上記を入力が尽きるまで繰り返す。 になります。 これくらいの事なら、sedでもawkでも何でも可能だと思います。 「どう実装するか」が判ってないから「おもったようにできない」のです。

nakamun
質問者

お礼

回答ありがとうございます。 どう処理させればいいのか全然イメージできていませんでした。 頂いたヒントでいけそうな気がしてきたのでやってみます。 ありがとうございました!

関連するQ&A