linux - 理解 awk 表达式

标签 linux awk

到目前为止我从未使用过 awk。
我最近遇到一个 awk 脚本,上面写着
{之前的一些命令}| awk -W Interactive '{print}/请按 CTRL\+C 退出。/{print "退出。";系统(“杀死”系统(“回声”))}'
我必须让这个脚本在 Windows 上运行。
但我什至不知道它是做什么的。
感谢任何帮助,请不要告诉我去搜索我已经完成的手册页,这一切似乎都非常复杂。
我刚刚意识到它是某种形式的模式操作语句。
如果任何 awk 专业人士知道发生了什么事,请告诉我。
如果可能的话,我将能够在 Windows 上运行这个脚本。

最佳答案

这看起来很奇怪

基本上,awk 代码看起来像是输出每一行输入(使用 {print} 指令),就像它在行缓冲模式 (-W Interactive) 中看到的那样。

当它出现在 Please press CTRL+C to exit. 行时,它会通知终端并尝试执行相当奇怪的系统命令。

print "Exiting."; system("kill " system("echo "))

也许我误读了这一点,但如果 echo 命令成功,看起来应该会转化为 kill 0Kill 0 kills off everything in the current process group .

关于linux - 理解 awk 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26213433/

相关文章:

linux - 如何逐行阅读并从键盘获取输入?

linux - 如果第二列中的数据相同,则第一列的 Bash 添加

csv - 一次 awk 多个转换/分隔符

linux - :(){ :|:& };: Forkbomb?

shell - shell脚本中如何获取包含关键字的段落?

linux - 如何指定链接时使用的库版本?

linux - 使用软件 bam-window 软件的 cmake 错误

regex - 选择奇数列,然后将连续行的字段放在一起

python - 如何设置我正在生成的进程的 umask?

linux - 在 BASH 中使用特殊字符从文件名中批量删除子字符串