Saya memiliki file teks seperti ini:
a
b
c
d
e
f
g
Bagaimana saya bisa mengelompokkan garis-garis itu untuk mendapatkan output seperti ini:
a-b
b-c
c-d
d-e
e-f
f-g
Saya harus melakukan ini di shell (sh, csh, bash).
Saya telah menemukan ini:
cat file | xargs -n2
tetapi elemen terakhir dari kelompok pertama tidak menjadi yang pertama dari yang kedua.
shell
text-processing
Costel Balta-Coman
sumber
sumber
^ Itu akan bekerja dengan sangat baik, kecuali bahwa input Anda tidak aktif. Begitu...
... akan bekerja, tapi mungkin terlalu rumit ...
sumber
sed
sendiri.sed 1d\;\$d
memperbaikinya.sed '2~2p' infile | paste -d- - -
paste -d- <(head -n -1 input) <(tail -n +2 input)
Satu lagi
sed
dan dapat dimodifikasi (terima kasih kepada mikeserv ):
sumber
y/-\n/\n-/
bisa mengganti keduanya s /// mungkin. Jika itu dilakukan akan lebih cepat, portabel untuk penggunaan \ n, dan lebih pendek.Versi bash murni -
sumber