大家好,我正在制作一个 awk bash 脚本,它将采用输入文本文件,例如:
1111 Joe Brown
2222 Charlie Rogers
3333 Chris Williams
4444 Rob Black
Run Code Online (Sandbox Code Playgroud)
并简单地颠倒行的顺序,因此输出将是:
4444 Rob Black
3333 Chris Williams
2222 Charlie Rogers
1111 Joe Brown
Run Code Online (Sandbox Code Playgroud)
我收到一个语法错误,说“(”附近有一个错误,而且我有一个额外的“{”我无法弄清楚这里发生了什么是我的代码:
#!/bin/bash
awk '{a[NR]=$0} END (for(i=NR; i>=1; i--)) printf("%s\n",a[i])}'
Run Code Online (Sandbox Code Playgroud)
您可能只使用 sort(1) 命令。
sort -nr < input.txt
Run Code Online (Sandbox Code Playgroud)
Sort 简单地获取输入文件并尝试对其进行排序,将空格作为分隔符(这是我们的情况),因此它按第一列对输入进行排序。如果您需要对第一列进行非字母排序,则需要 -n 开关(按数字排序)。-r 开关只是反转输出(升序/降序)。