Bash script: reading numbers inside a text line
我有一个文件catalog.dat,包含如下行:
1 | event_017_3916.gz |
我需要提取这行的第一个数字(017)。这个数字是启动另一个程序(program.c)所必需的,它需要输入数字才能启动(也就是说,它应该像$program.c 017那样使用)。实际上,我只需要构建一个命令,比如:
1 | PROGRAM.C 017 |
在我的shell脚本中。我的问题是:如何读取017并将其设置为可用于构建命令的变量?非常感谢你的帮助!
1 2 3 | while IFS=_ read event first_num rest ; do echo"PROGRAM.C $first_num" done <CATALOG.dat |
我的解决方案:
1 | awk -F"_" '{print $2}' | xargs -n1 PROGRAM.C |
解决方案:在
1 | awk -F_ '{print $2}' file |
定界符集是一个
槽运行文件和保存它到一个变量(
1 2 3 4 5 | while read line do echo"> $line" PROGRAM.C $line done < <(awk -F_ '{print $2}' file) |
此外,你可以使用
1 | awk -F_ '{print $2}' file | xargs PROGRAM.C |
这是executes