• ベストアンサー

シェルスクリプトについて

シェルスクリプトについて Linuxで先頭にスペースが入っている行をひとつ上の行につなげたいと考えています。 その場合、シェルスクリプトはどのように書けばよいかご教示願います。 【ファイル内容】 aaa △bbb ccc ddd (b行の先頭のみスペース(△)が入っています。) 【変換後のファイル】 aaa bbb ccc ddd

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

Perlを使うなら、メモリに入りきらないサイズでなければ perl -e '$/="";$_=<>;s/\n / /g;print;' infile >outfile シェルだけで書くと、 #!/bin/bash IFS="" if read -r x then while read -r a do case "$a" in " "*) x="$x$a" ;; *) echo "$x"; x="$a" ;; esac done echo "$x" fi

blum_num
質問者

お礼

ご教示いただきました方法で解決できました。 回答いただきありがとうございました。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

Perl で while (<>) { if (/^ /) { chomp $f; $f .= $_; } else { print $f; } } print $f if defined $f; とか.

blum_num
質問者

お礼

perlについてももっと勉強させていただきます。回答いただきありがとうございます。

関連するQ&A