head
pode ser útil aqui:
-c, --bytes=[-]K
print the first K bytes of each file; with the leading '-', print all but the last K bytes of each file
Eu preciso copiar os primeiros cinco caracteres de um arquivo de saída, 25 linhas no total, e copiar essa saída para um arquivo. também pode ser bom remover entradas em branco ou nulas na saída.
head
pode ser útil aqui:
-c, --bytes=[-]K
print the first K bytes of each file; with the leading '-', print all but the last K bytes of each file
cut -c5
corta os primeiros 5 caracteres de cada linha na entrada. Se você quiser restringir o número de linhas para 25, use head -n25
:
cut -c5 file | head -n25
Você pode usar o seguinte comando sed
:
sed \
-e 's/\(^\w\{5\}\).*//' \
-e '26,$d' \
-e '/^$/d' \
input_file > output_file
A primeira parte corresponde a cinco caracteres no começo da linha, imprime-os e descarta o resto. A segunda parte garante que apenas as primeiras 25 linhas são impressas. E a última parte remove linhas vazias.
cat inputfile | head -c 5 > outputfile
Isso deve redirecionar a saída para o arquivo.
Se você deseja remover os espaços em branco, filtre o conteúdo do arquivo, ou seja, remova os espaços antes de extrair os cinco primeiros caracteres.
cat inputfile | tr -d ' ' | head -c 5 > outputfile
Você também pode usar o seguinte formato de tr
para obter o mesmo efeito.
cat inputfile | tr -d [:space:] | head -c 5 > outputfile
tr -d [:space:]
remove todos os espaços do texto canalizado para este comando.
Siga a solução acima se quiser o truncamento apenas para os 5 primeiros caracteres do arquivo.
Agora, se você deseja fazer isso para cada linha do seu arquivo, siga este:
cat inputfile | sed -e 's/ //g' | awk '{print substr($0,0,5)}' > outputfile
ou
sed -e 's/ //g' < inputfile | awk '{print substr($0,0,5)}' > outputfile
Explicação: sed -e 's/ //g'
remove todos os espaços e awk '{print substr($0,0,5)}'
imprime os primeiros 5 caracteres de cada linha.
Tags text-processing