出力

出力

この問題があります。次のように、各行の文字数が異なるテキストファイルがあります。

aaaa
bbbbbbbbb
cc

今何も失うことなく、1行に最大N文字を含む新しいテキストファイルを作成したいと思います。したがって、次のようになります(たとえば、各行は最大4文字でなければなりません)。

aaaa
bbbb
bbbb
b
cc

1行または他のツールをsed使用awkできますか?grep

答え1

fold -w4 yourfile

出力

aaaa
bbbb
bbbb
b
cc

答え2

真珠

perl -lne 'print for /.{1,4}|^$/g' yourfile

sed1

sed -e '
   s/..../&\n/
   /\n$/P;//d
   P;D
' yourfile

側面2

sed -e '
   s/..../&\n/g
   s/\n$//
' yourfile

吹く

while IFS= read -r l; do
   case $l in '' ) echo; continue ;; esac
   while case $l in '' ) break ;; esac; do
      echo "${l:0:4}"
      l=${l:4:${#l}}
   done
done < yourfile

答え3

常に古典的なgrep:

$ echo "$a"
aaaa
bbbbbbbbb
cc

$ echo "$a" |egrep -o '(.){1,4}'
aaaa
bbbb
bbbb
b
cc

答え4

sed 's_\(....\).*_\1_' /path/to/input

4文字より短い文字は触れず、長い文字は切り捨てられます。

関連情報