Problema: fatiar um arquivão em pedaços menores, com N linhas cada.
Solução fácil.
Um único comando.
split -l N arquivo.txt
Não conhece o comando?
Não conhece esta opção específica?
Problemas², vai ter que inventar.
sed, sempre ele.
sed que gera sed: avançado e poderoso.
paste + seq + seq? Quem diria!
Sem arquivos temporários.
Sem loop.
Sem design patterns.
Com mágica.
Com diversão.
Com salada de frutas.
Spoiler: a Mog dá “oi” tímido no final ;)
Resumo dos comandos:
- sed — edita linhas
- seq — sequência de números
- split — fatia arquivos
- paste — junta colunas
Histórico:
### split seq 20 seq 20 > 20.txt split -l 5 20.txt ls cat xaa cat xab rm x* ls ### sed w sed -n '1,5 p' 20.txt sed -n '4,11 p' 20.txt sed -n '4,11 w foo.txt' 20.txt ls cat foo.txt sed -n '1,5 w foo1.txt' 20.txt sed -n '6,10 w foo2.txt' 20.txt cat foo2.txt ### paste + seq seq 5 seq 1 20 seq 1 5 20 seq 5 5 20 seq 1 5 20 > a1 seq 5 5 20 > a2 paste a1 a2 paste a1 <(seq 5 5 20) paste <(seq 1 5 20) <(seq 5 5 20) rm a? ### sed constrói um script sed paste -d , <(seq 1 5 20) <(seq 5 5 20) paste -d , <(seq 1 5 20) <(seq 5 5 20) | sed 's/.*/& w foo.txt/' paste -d , <(seq 1 5 20) <(seq 5 5 20) | sed 's/.*/& w foo-&.txt/' paste -d , <(seq 1 5 20) <(seq 5 5 20) | sed 's/.*/& w linhas-&.txt/' paste -d , <(seq 1 5 20) <(seq 5 5 20) | sed 's/.*/& w linhas-&.txt/ ; s/,/-/2' ### aplicação do script sed paste -d , <(seq 1 5 20) <(seq 5 5 20) | sed 's/.*/& w linhas-&.txt/ ; s/,/-/2' > foo.sed cat foo.sed ls ls sed -n -f foo.sed 20.txt ls cat linhas-1-5.txt cat linhas-16-20.txt< ### recapitulando: estes são os dois comandos paste -d , <(seq 1 5 20) <(seq 5 5 20) | sed 's/.*/& w linhas-&.txt/ ; s/,/-/2' > foo.sed sed -n -f foo.sed 20.txt ### agora num único comando, sem precisar de foo.sed rm foo.sed rm linhas-* paste -d , <(seq 1 5 20) <(seq 5 5 20) | sed 's/.*/& w linhas-&.txt/ ; s/,/-/2' | sed -n -f - 20.txt paste -d , <(seq 1 5 20) <(seq 5 5 20) | sed 's/.*/& w linhas-&.txt/ ; s/,/-/2' | sed -n -f /dev/stdin 20.txt ls cat linhas-6-10.txt



Jedi Shell !!!
Oi Mog ^^
Ótimo vídeo, Aurélio! Parabéns!
Gostaria de saber, se possível:
1) Qual o tipo e tamanho de fonte que você usa no seu shell do Mac;
2) Como você fez para mudar o prompt do shell para aquela seta? :)
[]‘s
1) Monaco 14pt, mas para gravar os vídeos eu aumento bastante o tamanho até preencher a tela.
2)
PS1='▶ ':)
Aurelio, sumido!
Estou sempre acompanhando sua atualizações, e o livro do sed?
Respondi meu email quando puder, um abraço!