通过shell脚本按字母顺序排列的列表

时间:2014-09-27 16:12:45

标签: shell

我想在其中创建一个包含销售办事处的清单,以便快速参考。办公室位于奥尔巴尼,克利夫兰,芝加哥,亚特兰大,休斯顿,西雅图,迈阿密,萨克拉门托和安克雷奇。 我如何按字母顺序排列列表。

1 个答案:

答案 0 :(得分:3)

您可以使用程序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

最后,如果要对某些数据进行排序而不将其写入文件,可以使用“here document”语法:

cat <<EOF | sort
Sacramento
Anchorage
Albany
Houston
Seattle
Miami
Cleveland
Chicago
Atlanta
EOF

输出:

Albany
Anchorage
Atlanta
Chicago
Cleveland
Houston
Miami
Sacramento
Seattle