Giriş yalnızca iki sütun olsaydı, ben kullanmanızı öneririm column -t
. column
Yardımcı program herhangi bir sayıda boşluk veya sekmeyi sütun sınırlayıcı olarak ele alacağından , burada pek işe yaramaz :
$ column -t file1
John 1
Peter 2
Michael Rod 3
Su 7
Louise 9
"Michael Rod" iki sütundur, böylece tek sıra diğer satırlardan daha fazla sütuna sahiptir, bu da çıktıyı bozar.
Son sütundan önce bir sekme karakteri ekleyerek ve ardından bunu column
yalnızca bir sınırlayıcı olarak kullanalım:
$ awk '{ $NF = "\t" $NF; print }' file1 | column -t -s $'\t'
John 1
Peter 2
Michael Rod 3
Su 7
Louise 9
Awk'ta NF
alan sayısı (sütunlar) ve $NF
son alandaki verilerdir. Kullandığım komut dosyası , satırın tamamını yazdırmadan önce bir sekme karakteri ekleyerek son alanın verilerini değiştirir .
Kabuğunuz anlamadıysa $'\t'
, verilerin parçası olmayan başka bir karakter seçebilirsiniz:
awk '{ $NF = "@" $NF; print }' file1 | column -t -s '@'
John 1
Peter 2
Michael Rod 3
Su 7
Louise 9