Ich habe eine Textdatei wie diese:
a
b
c
d
e
f
g
Wie kann ich diese Zeilen gruppieren, um eine Ausgabe wie folgt zu erhalten:
a-b
b-c
c-d
d-e
e-f
f-g
Ich muss das in Shell machen (sh, csh, bash).
Ich habe folgendes gefunden:
cat file | xargs -n2
aber das letzte Element der ersten Gruppe wird nicht das erste der zweiten.
shell
text-processing
Costel Balta-Coman
quelle
quelle
^ Das würde wirklich gut funktionieren, außer dass Ihre Eingabe einzeln erfolgt. So...
... würde funktionieren, ist aber vielleicht zu kompliziert ...
quelle
sed
es in Ruhe zu lassen .sed 1d\;\$d
es korrigieren.sed '2~2p' infile | paste -d- - -
paste -d- <(head -n -1 input) <(tail -n +2 input)
Einer noch
sed
und kann geändert werden (dank mikeserv ):
quelle
y/-\n/\n-/
könnte vielleicht beide s /// ersetzen. In diesem Fall wäre es schneller, tragbar und kürzer.Eine reine Bash-Version -
quelle