fold -w4 yourfile
Saída
aaaa
bbbb
bbbb
b
cc
Eu tenho este problema: Eu tenho um arquivo de texto, onde cada linha tem diferentes números de caracteres, como este:
aaaa
bbbbbbbbb
cc
Agora, desejo gerar um novo arquivo de texto, no qual uma linha tenha no máximo N caracteres, mas nenhum conteúdo está faltando. Então, algo assim (por exemplo, cada linha deve ter no máximo 4 caracteres):
aaaa
bbbb
bbbb
b
cc
Isso é possível com sed
, awk
, grep
ou outras ferramentas em combinação com uma única linha?
perl -lne 'print for /.{1,4}|^$/g' yourfile
sed -e '
s/..../&\n/
/\n$/P;//d
P;D
' yourfile
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
Todo o tempo grep clássico:
$ echo "$a"
aaaa
bbbbbbbbb
cc
$ echo "$a" |egrep -o '(.){1,4}'
aaaa
bbbb
bbbb
b
cc
sed 's_\(....\).*__' /path/to/input
Qualquer coisa menor do que quatro caracteres não será tocada; mais tempo será truncado.
Tags grep text-processing awk sed