微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

bash – parsing文件中的参数列表

我有一个名为foo.sh的脚本包含类似的东西

exec myapp -o size=100m -f

任何想法如何创build另一个脚本来分析foo.sh并检索size的值? 可以假设myapp只在foo.sh中出现一次,但是size参数的顺序可以出现在参数列表中的任何地方

谢谢

如何使用boost program_options读取整数数组?

Bash for Windows 10 gcc不会编译粘贴到根目录中的c文件

不同的crond的ssh行为

一个命令的末尾,“</ dev / null>&/ dev / null”是做什么的?

是否有一个用于shell脚本的GUIdebugging器

执行ant时出错:-bash:ant:command not found

bash脚本如何知道它的源代码安装目录。 运营商?

redirectcron作业的输出

ffmpeg添加所有音轨到video转换(mkv)

为什么在Windows安装git bash在后台运行脚本?

用grep在一个shell里:

$ grep -oP 'myapp.*?size=Kd+m' foo.sh 100m

用awk在shell中:

$ awk -F'size=' '{sub(/ -f/,"");print $2}' foo.sh 100m

要么

$ awk '{print gensub(/.*size=([0-9]+m).*/,"\1",$0)}' foo.sh 100m

用perl在shell中:

$ perl -lne 'print $1 if /exec.*?size=(d+m)/' foo.sh 100m

或者使用shell搞笑的把戏:

$ declare $(grep -oP "bw+=w+b" foo.sh) $ echo $size 100m

cat foo.sh | egrep -o 'size=[[:digit:]]+' | awk -F= '{print $2}'

sed方法一个变种。 一旦发现线路,这个短路。 如果文件很长并且目标很可能接近开始,这很有用。

sed -ne '/exec myapp -o size=/{s/[^0-9]*([m0-9]*).*/1/;p;q;}'

一旦找到正确的行,它将提取大小值,打印它,然后退出

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐