按照文件中存在的id的反向顺序执行命令

时间:2013-04-30 19:26:52

标签: awk

我在file.txt上使用awk运行以下命令,当前它从上到下运行file.txt中存在的id的命令..我希望命令以相反的顺序运行,以便存在的id在file.txt中有关于我们如何做到这一点的任何输入?

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

file.txt contains.

97a65fd1d1b3b8055edef75e060738fed8b31d3 
fb8df67ceff40b4fc078ced31110d7a42e407f16
 a0631ce8a9a10391ac4dc377cd79d1adf1f3f3e2 

.....

2 个答案:

答案 0 :(得分:1)

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

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

使用$1代替上面的$0来操作第一个字段而不是整行。

答案 1 :(得分:1)

如果您不一定要使用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重定向到同一个文件时,它变回空白,此解决方法通过写入临时“缓冲区”文件来避免此问题。