Tengo un archivo de texto como este:
a
b
c
d
e
f
g
¿Cómo puedo agrupar esas líneas para obtener una salida como esta:
a-b
b-c
c-d
d-e
e-f
f-g
Tengo que hacer esto en shell (sh, csh, bash).
He encontrado esto:
cat file | xargs -n2
pero el último elemento del primer grupo no se convierte en el primero del segundo.
shell
text-processing
Costel Balta-Coman
fuente
fuente
^ Eso funcionaría realmente bien, excepto que su entrada es off-by-one. Entonces...
... funcionaría, pero tal vez sea demasiado complicado ...
fuente
sed
solo.sed 1d\;\$d
corregirlo.sed '2~2p' infile | paste -d- - -
paste -d- <(head -n -1 input) <(tail -n +2 input)
Uno mas
sed
y se puede modificar (gracias a mikeserv ):
fuente
y/-\n/\n-/
podría reemplazar ambos s /// tal vez. Si lo hiciera, sería más rápido, portátil para el uso \ n y más corto.Una versión pura bash -
fuente