Bash Awk,记录的逆序

标签 bash awk

大家好,我正在制作一个 awk bash 脚本,它将接受一个输入文本文件,例如:

1111 Joe Brown
2222 Charlie Rogers
3333 Chris Williams
4444 Rob Black

并且简单地颠倒行的顺序,所以输出将是:

4444 Rob Black
3333 Chris Williams
2222 Charlie Rogers
1111 Joe Brown

我收到一个语法错误,说“(”附近有一个错误,而且我还有一个额外的“{”我无法弄清楚这里发生了什么是我的代码:

#!/bin/bash
awk '{a[NR]=$0} END (for(i=NR; i>=1; i--)) printf("%s\n",a[i])}'

最佳答案

您可能只使用 sort(1) 命令。

sort -nr < input.txt

排序只是获取输入文件并尝试对其进行排序,将空格作为分隔符(这是我们的例子),因此它按第一列对输入进行排序。如果您需要对第一列进行非字母排序,则需要 -n 开关(以数字排序)。 -r 开关只是反转输出(升序/降序)。

关于Bash Awk,记录的逆序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22328828/

相关文章:

bash - 来自模式的值(value) - bash

linux - 列中的最小值和最大值

linux - dos 或 linux 多行搜索和多行替换/添加

linux - 使用内连接连接两个 TSV 文件

regex - awk正则表达式提取部分url

带有 awk 或 gawk 的正则表达式

linux - 用于在文本文件中查找模式并返回整行的 bash 脚本

python - 查找目录下所有文件中的UTF-8字符串

linux - BASH : find fileX[1-20] in directory Y and look if fileX[1-20]. pid 存在

bash - 无法使用 curl : argument too long 将大文件发送到 elasticsearch