Você pode usar o comando cut
:
cut -c -80 file
com grep
:
grep -Eo '.{80}' file
Eu tenho um arquivo com muitas linhas e quero cortar cada linha para ter 80 caracteres de comprimento. Como eu pude fazer isso?
Eu já filtrei linhas com menos de 80 caracteres, então agora tenho um arquivo que tem linhas com mais de 80 caracteres e quero aparar cada linha para que todas sejam exatamente 80. Em outras palavras, quero para preservar os primeiros 80 caracteres em cada linha e remover o resto da linha.
Você pode usar o comando cut
:
cut -c -80 file
com grep
:
grep -Eo '.{80}' file
Para cortar (truncar) cada linha do arquivo (e ter a saída no atual console) use:
cut -c -80 infile # cut only counts bytes (fail with utf8)
grep -o '^.\{1,80\}' infile
sed 's/\(^.\{1,80\}\).*//' infile
Se o que você deseja é inserir uma nova linha no caractere 80 e dividir cada linha com mais de 80 caracteres em mais linhas, use:
fold -w 80 infile # fold, like cut, counts bytes.
Se você quiser dividir apenas em espaços (palavras inteiras), use:
fold -sw 80 infile
Para todas as soluções acima, redirecione para algum outro arquivo como >outfile
(não use o mesmo nome, isso não funcionará) no final de qualquer comando para armazenar o resultado em outfile
. Exemplo:
fold -sw 80 infile > outfile
com sed
:
sed 's/^\(.\{80\}\).*$//' file
com cut
:
cut -c -80 file
Usando o AWK:
awk '{print substr($0,1,80)}' file.txt
Usando cut:
cut -c -80 file.txt
Usando colrm:
colrm 81 file.txt
Usando sed:
sed 's/^\(.\{80\}\).*$//' file.txt
Usando o grep:
grep -Eo '.{80}' file.txt
Tags text-processing linux