Giriş yalnızca iki sütun olsaydı, ben kullanmanızı öneririm column -t. columnYardı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 columnyalnı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 NFalan sayısı (sütunlar) ve $NFson 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