Comando cut

1. Comando cut

Valcenir
valcenir-ti

(usa Debian)

Enviado em 31/10/2010 - 13:51h

Tenho arquivo.txt e quero excluir as 4 primeiras linhas e as 8 ultimas, não estou conseguindo!!!

Alguém pode me ajudar por favor?

Obrigado


  


2. Re: Comando cut

Perfil removido
removido

(usa Nenhuma)

Enviado em 31/10/2010 - 16:11h

Algumas coisas que podem ajudar:
man cut
cut --help
e: http://www.computing.net/answers/linux/removing-top-3-lines-from-text-file/29396.html


3. Veja se isso ajuda

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 01/11/2010 - 17:01h

--- EDITADO ---

Ops... acabei postando uma solução incorreta para seu problema! O correto seria:

---------------

#!/bin/sh
#
# $1 = Linhas iniciais a remover
# $2 = Linhas finais a remover
# $3 = Arquivo de origem
#
# Uso: ./script 4 8 arquivo
#
total_linhas=`wc -l < $3`
linhas_finais=$((total_linhas - $2))
linhas_iniciais=$(($1 + 1))

sed -n ${linhas_iniciais},${linhas_finais}p $3

---------------


4. Exclusão Linhas Arquivo

Danilo Perillo Chiacchio
danchiacchio

(usa Debian)

Enviado em 02/11/2010 - 00:18h

Boa Noite Amigo,

O comando Cut é um delimitador de arquivos, onde pode ser utilizado para delimitar um arquivo em colunas, numero de caracteres ou por posição de campo.

Sintaxe:

# cut <opções> <arquivo>

Opções que mais utilizo:

-d: Especifica o caractere delimitador;
- f: Informa a posição do campo;

Exemplo de uso:

# cut -d “:” -f 1,3,5 /etc/passwd

Ira mostrar as colunas 1, 3 e 5 do arquivo /etc/passwd com o delimitador “:”.

já o comando Sed procura e substitui padroes em textos, mostrando o resultado em STDOUT.

Sintaxe de uso:

# sed <opções> 'comando e expressão relugar' <arquivo original>

Um exemplo de utilização:

# sed -e ' /^#/d' /boot/grub/menu.lst

Nesse caso, todas as linhas em branco do arquivo /boot/grub/menu.lst serão excluidas das visualização em STDOUT (sem alterar o arquivo original).

Opção:

-e: Executa uma expressão regular;

Comandos:

s: Substituir;
g: Substituir todas as ocorrencias;
d: Apagar a linha;

Nesse seu caso, pode tentar o comando abaixo, supondo que seu arquivo tenha 16 linhas (por exemplo):

# sed -e 1,4d -e 8,\$d <nome arquivo>

ou

# sed -e 1,4d -e 8,16d <nome do arquivo>

Se quiser, pode criar um novo arquivo com o resultado do sed:

# sed -e 1,4d -e 8,16d <nome do arquivo original> > <nome do novo arquivo>

Obs: Esse meu post é apenas um complemento.

Abraço e espero ter ajudado.

Danilo.


5. Re: Comando cut

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 02/11/2010 - 15:39h

Acabei trocando as ideias e postei uma solução incorreta para seu problema, mas editei o post anterior e agora sim, a forma está correta.


6. Obrigado

Valcenir
valcenir-TI

(usa Debian)

Enviado em 02/11/2010 - 15:46h

resolvido...
Muito obrigado.


7. e se eu quiser...

antonio jose da silva almeida
ajsalmeida

(usa Outra)

Enviado em 03/10/2013 - 23:40h

Ei pessoal... aproveitando aqui.. e se eu quiser pegar todas as outras menos a primeira colona?
acho que
-f2* não vai funcionar
XD


8. Selecionar da segunda coluna em diante

Walter
walterpontes

(usa Debian)

Enviado em 02/01/2015 - 11:47h

Pode-se usar cut -f2- -d"<delimitador>" <arquivo de entrada>






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts