是否可以在命令末尾输入一个很长的命令?下面的示例可以更清楚地解释我的查询。
目前在 grep 时我必须执行如下操作:
zgrep -i "A VERY LONG TEXT" file |awk '{print $1}'
每次我都必须将光标移回“非常长的文本”来更改模式。我想以“非常长的文本”出现在命令末尾的方式更改命令,以便我可以快速更改它。
command1 |command2 |some_magic "A VERY LONG TEXT"
我知道我可以通过执行 CAT 然后 grep 来实现这个结果,想知道是否有任何替代方法可以做到这一点。可能就像将它分配给临时变量一样?
示例 2:
我需要获取所有命令的实时时间戳及其在 session 文件中的输出。所以我必须使用以下命令。但在执行任何命令之前,我必须移动光标直到取消缓冲并更改命令。有什么方法可以更改以下命令,以便我可以在行尾输入命令?
/yumm 194>unbuffer ls -lrt | awk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0; }'
2014-10-01 10:38:19 total 0
2014-10-01 10:38:19 -rw-rw-r-- 1 user bcam 0 Oct 1 10:37 1
2014-10-01 10:38:19 -rw-rw-r-- 1 user bcam 0 Oct 1 10:38 test1
2014-10-01 10:38:19 -rw-rw-r-- 1 user bcam 0 Oct 1 10:38 test2
2014-10-01 10:38:19 -rw-rw-r-- 1 user bcam 0 Oct 1 10:38 test3
2014-10-01 10:38:19 -rw-rw-r-- 1 user bcam 0 Oct 1 10:38 test4
yumm 195>
简而言之,我需要一些命令来获取我执行的所有命令及其输出的时间戳。
最佳答案
如果您只是将此文本设置为变量会怎样?
mystring="A VERY LONG TEXT"
zgrep -i "$mystring" file | awk '{print $1}'
^ ^
note you need double quotes to make it work
根据您的编辑,您还可以执行以下操作:
awk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0; }' <<< "$(unbuffer ls -ltr)"
^^^^^^^^^^^^^^^^^^^^^^^^^
关于linux - 最后如何获取长命令的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26143925/