我在file.txt上使用awk运行以下命令,当前它从上到下运行file.txt中存在的id的命令..我希望命令以相反的顺序运行,以便存在的id在file.txt中有关于我们如何做到这一点的任何输入?
git command $(awk '{print $1}' file.txt)
file.txt contains.
97a65fd1d1b3b8055edef75e060738fed8b31d3
fb8df67ceff40b4fc078ced31110d7a42e407f16
a0631ce8a9a10391ac4dc377cd79d1adf1f3f3e2
.....
答案 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
重定向到同一个文件时,它变回空白,此解决方法通过写入临时“缓冲区”文件来避免此问题。