Glen jackson'un aşağıdakileri kullanarak cevabında küçük bir değişiklik varpaste
: -d
ayırıcı seçeneğinin değeri birden fazla karakter içeriyorsa paste
, karakterler arasında birer birer geçiş yapar ve -s
seçeneklerle birlikte aynı giriş dosyasını işlerken bunu yapmaya devam eder.
Bu \n
, her seferinde iki satırı birleştirmek için ayırıcı artı kaçış dizisi olarak istediğimiz her şeyi kullanabileceğimiz anlamına gelir .
Virgül kullanma:
$ paste -s -d ',\n' infile
KEY 4048:1736 string,3
KEY 0:1772 string,1
KEY 4192:1349 string,1
KEY 7329:2407 string,2
KEY 0:1774 string,1
ve dolar işareti:
$ paste -s -d '$\n' infile
KEY 4048:1736 string$3
KEY 0:1772 string$1
KEY 4192:1349 string$1
KEY 7329:2407 string$2
KEY 0:1774 string$1
Ne bu olamaz isimli birden karakterden oluşan bir ayırıcı kullanıyoruz.
Bonus olarak, eğer paste
POSIX uyumluysa, bu dosyadaki son satırın yeni satırını değiştirmez, bu nedenle aşağıdaki gibi tek sayıda satıra sahip bir girdi dosyası için
KEY 4048:1736 string
3
KEY 0:1772 string
paste
son satırdaki ayırma karakterine yapışmaz:
$ paste -s -d ',\n' infile
KEY 4048:1736 string,3
KEY 0:1772 string
pr
,paste
,awk
,xargs
,sed
vepure bash
! ( bashxargs
daha yavaş, daha yavaş !)