0
我想創建一個列表,其中包含我們的銷售辦事處以供快速參考。辦公室在奧爾巴尼,克利夫蘭,芝加哥,亞特蘭大,休斯敦,西雅圖,邁阿密,薩克拉門託和安克雷奇。 我怎麼能把這個列表按字母順序排列。通過shell腳本按字母順序排列的列表
我想創建一個列表,其中包含我們的銷售辦事處以供快速參考。辦公室在奧爾巴尼,克利夫蘭,芝加哥,亞特蘭大,休斯敦,西雅圖,邁阿密,薩克拉門託和安克雷奇。 我怎麼能把這個列表按字母順序排列。通過shell腳本按字母順序排列的列表
您可以使用程序sort
排序文件的行。
sort offices.txt
將排序的行寫入標準輸出。您可能需要將它們重定向到一個文件。
sort offices.txt > offices_sorted.txt
如果你想模仿「就地」排序,也就是,覆蓋原文件,下面的模式是很常見:
sort offices.txt > offices.txt.sorted && mv offices.txt.sorted offices.txt
要小心,不要選擇一個文件名的臨時文件可能已經存在,或者您將覆蓋另一個文件。如果有疑問,可以使用mktemp
以保證安全。
tempfile="$(mktemp)"
sort offices.txt > "$tempfile" && mv "$tempfile" offices.txt
最後,如果你想在不將其寫入到一個文件中的一些數據進行排序,您可以使用「立即文檔」語法:
cat <<EOF | sort
Sacramento
Anchorage
Albany
Houston
Seattle
Miami
Cleveland
Chicago
Atlanta
EOF
輸出:
Albany
Anchorage
Atlanta
Chicago
Cleveland
Houston
Miami
Sacramento
Seattle
任何理由不使用'sort filename'而不用所有的'cat << EOF'東西?或者你是不是在創建一個文件?似乎只是爲了顯示命令,OP會更清楚。 – beroe 2014-09-27 19:16:42
@beroe我假設OP沒有文件中的數據。我會更新答案以解決這兩種情況。 – 5gon12eder 2014-09-27 19:20:31
所以我不需要在終端上寫一個腳本,對吧? 謝謝 – 2014-09-27 19:33:05