Awk 按照文件中ID的相反顺序执行命令

Awk 按照文件中ID的相反顺序执行命令,awk,Awk,我正在使用awk on file.txt运行以下命令,当前它在file.txt中的ID上从上到下运行命令..我希望命令以与file.txt中的ID相反的顺序运行..关于如何执行此操作的任何输入 git command $(awk '{print $1}' file.txt) file.txt contains. 97a65fd1d1b3b8055edef75e060738fed8b31d3 fb8df67ceff40b4fc078ced31110d7a42e407f16 a0631ce8

我正在使用awk on file.txt运行以下命令,当前它在file.txt中的ID上从上到下运行命令..我希望命令以与file.txt中的ID相反的顺序运行..关于如何执行此操作的任何输入

git command $(awk '{print $1}' file.txt)

file.txt contains.

97a65fd1d1b3b8055edef75e060738fed8b31d3 
fb8df67ceff40b4fc078ced31110d7a42e407f16
 a0631ce8a9a10391ac4dc377cd79d1adf1f3f3e2 

.....

要使用awk反转文件中的行,请使用

awk '{a[i++]=$0} END {for (j=i-1; j>=0;) print a[j--] }' file

使用
$1
而不是上面的
$0
只对第一个字段而不是整行进行操作。

如果您不一定要使用
awk
,那么
tail
-r
(反向)参数将起作用

myFile.txt

97a65fd1d1b3b8055edef75e060738fed8b31d3 
fb8df67ceff40b4fc078ced31110d7a42e407f16
a0631ce8a9a10391ac4dc377cd79d1adf1f3f3e2
现在要反向打印它

$ tail -r myFile.txt

a0631ce8a9a10391ac4dc377cd79d1adf1f3f3e2
fb8df67ceff40b4fc078ced31110d7a42e407f16
97a65fd1d1b3b8055edef75e060738fed8b31d3 

编辑: 要将其输出到文件,只需将其重定向出来

$ tail -r myFile.txt > newFile.txt

编辑: 要写入同一文件吗?没问题

tail -r myFile.txt > temp.txt; cat temp.txt > myFile.txt; rm temp.txt;

由于某种原因,当我将
tail-r
重定向到同一个文件时,该文件返回为空白,此解决方法通过写入临时“缓冲区”文件来避免该问题。

您想反向运行该文件,还是从上到下排序?与2e3f3f1fda中的相反。。。或者从上到下,如第9项、第8项、第7项、第6项等,顺序相反……顺序应该是a0631ce8a9a10391ac4dc377cd79d1adf1f3f3e2、FB8DF67CEFF40B4FC078CED3110D7A42E407F16、97A65FD1D1B3B8055EDEF75E060738FED31D3。您一定要使用awk还是愿意接受其他解决方案?@AtlasWegman-其他解决方案也可以,需要在linux机器上运行好的,发布了一个很好的简单示例这实际上是要在控制台上更新文件还是jsut打印只需将文件打印到控制台,但要更新文件,您所要做的就是将其导出