Tag: awk

如何从文本块中删除dupes

什么是在文本文件中删除块内的欺骗的智能和简单方法。 每个块由两个换行符分隔。 之前: apple banana apple cherry cherry delta epsilon delta epsilon apple pie delta delta 后: apple banana cherry delta epsilon apple pie delta 谢谢。 应该在Mac上工作。 允许unicode。 任何shell方法/语言/命令。 Dupes不一定是连续的。 如果忽略前导/尾随空格,可以使用奖励,或者可以使用逗号作为记录中的分隔符。

我如何在像rubk中的范围正则表达式中使用awk / start /,/ stop /

我想像这样做一个AWK风格的范围正则表达式: awk ‘ /hoststatus/,/\}/’ file 在AWK中,这将打印文件中两个模式之间的所有行: hoststatus { host_name=myhost modified_attributes=0 check_command=check-host-alive check_period=24×7 notification_period=workhours check_interval=5.000000 retry_interval=1.000000 event_handler= } 我如何在Ruby中做到这一点? 额外奖励:你会怎么用Python做的? 这在AWK中非常强大,但我是Ruby的新手,不知道你是怎么做的。 在Python中,我也找不到解决方案。

读取ruby中的所有shell变量

问题: 我在ruby脚本中运行shell脚本作为子进程,运行脚本后我希望有一个选项来检查shell的所有环境变量,包括数组变量。 到目前为止,我想出了: set | awk -F= ‘BEGIN {v=0;} /^[a-zA-Z_][a-zA-Z0-9_]*=/ {v=1;} v==1 && $2~/^[‘\”\$]/ {v=2;} v==1 && $2~/^\(/ {v=3;} v==2 && /’\”$/ && !/’\’\”$/ {v=1;} v==3 && /\)$/ {v=1;} v {print;} v==1 {v=0;} ‘ 哪个非常好只显示变量,包括数组,多行字符串和过滤函数。 但是这并不是一直使用相同的格式,尤其是数组变量在BASH和ZSH中的表示方式不同。 这是我目前的实现: https : //github.com/mpapis/tf/blob/master/lib/tf/environment.rb 题: 有一种简单的方法可以显示在BASH和ZSH /可能的其他shell中持久工作的所有变量。