Se você quiser remover a primeira "palavra" da linha, use algo como
awk '{print $2}' input.txt
supondo que você tenha espaço em branco entre "palavras"
Eu tenho um arquivo com milhares de linhas que começam com:
>Miriam132_38138 Otu32555|1
Eu preciso remover ' Miriam*********
' para que cada linha comece com:
>Otu32555|1
A primeira string de caracteres é sempre uma combinação da palavra 'Miriam' e um conjunto de 7, 8 ou 9 caracteres. Eu brinquei com sed
sem muito sucesso.
Se você quiser remover a primeira "palavra" da linha, use algo como
awk '{print $2}' input.txt
supondo que você tenha espaço em branco entre "palavras"
Assumindo que o conjunto de 7-9 caracteres termina com um espaço e que Miriam
esteja na linha apenas uma vez:
sed 's/\(.*\)Miriam.* //' input.txt
A parte \(.*\)
"salva" o padrão correspondido antes de Miriam
e o coloca de volta com
sed '/^Miriam/s/[^ ]* *//' <in >out
... fará. Ele irá remover de qualquer linha que abra com a string Miriam apenas a primeira seqüência de caracteres não espaciais seguida pela primeira string de caracteres de espaço. Ele não afetará qualquer linha que não abra com essa sequência e não removerá qualquer, exceto a primeira ocorrência da referida cadeia.
Use isso,
awk '{print $2}' filename > outputfile
Deveria definitivamente funcionar. Ele irá imprimir a segunda palavra de cada linha no arquivo e a saída será salva no arquivo chamado "outputfile"
Use awk
:
awk '{print substr($0, index($0, $2))}' file
Remove apenas o primeiro campo, mas imprime todos os outros campos.
Ou sed
:
sed 's/Miriam132_38138 \+//' file
Se o >
no início da linha for preservado, isso remove apenas a primeira correspondência.
Tags text-processing sed