この問題があります。次のように、各行の文字数が異なるテキストファイルがあります。
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文字より短い文字は触れず、長い文字は切り捨てられます。