Com python você pode fazer isso (note -3
):
python -c "for x in open('books.txt'): print x.split(' ')[-3]"
ou com awk
:
awk '{ print ( $(NF-2) ) }' books.txt
Eu tenho um arquivo longo (20000 + linhas) onde cada uma das linhas é uma descrição de um livro:
book_number "title of the book" size type author_number
Onde o elemento entre aspas é uma string com aspas e as outras são números, exceto pelo tipo que é uma única palavra:
23446 Raising Steam 537724 EPUB 4
Eu quero extrair todos os campos de tamanho, mas usando o corte você não pode usar números negativos para contar a partir da parte de trás do resultado da divisão com -d " "
:
cut -d " " -f -2 books.txt
Eu não posso contar a partir da frente, pois os livros podem ter qualquer número de espaços no título (eu não inventei esse formato, eu teria usado CSV ou JSON, o que exigia citações).
Estou perdendo alguma opção que permite usar cut
? O que mais eu poderia usar para obter o segundo antes do último campo com uma solução de uma linha?
Tags cut