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