linux - 最后如何获取长命令的输入

标签 linux unix awk grep command

是否可以在命令末尾输入一个很长的命令?下面的示例可以更清楚地解释我的查询。

目前在 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/

相关文章:

linux - grep 在我指定的字符串之后

linux - 在循环内调用 sftp 脚本时循环退出

arrays - 如何在awk中初始化数组的数组?

linux - 监视关键字的日志文件,然后发送电子邮件通知

linux - 如何使用 cat、sed、awk 或 cut 将列添加到 csv 文件中的特定位置?

c++ - 在 C++ 中取消定义类型定义?

c++ - 如何调试奇怪的内存泄漏 (C++)

linux - 将主机添加到已知主机列表失败,如何调试

linux - 检查目录中是否存在大量 .gz 文件的命令

linux - 根据文本文件内容中的行数运行循环次数(Unix Shell 脚本)