我正在使用gromacs进行模拟。使用g_polystat工具会产生以下过程。
g_polystat
程序返回一个选项列表:
Select a group of polymer mainchain atoms:
Group 0 ( System) has 2669 elements
Group 1 ( Other) has 23 elements
Group 2 ( LnrB) has 5 elements
Group 3 ( Lnr) has 14 elements
Group 4 ( LnrE) has 4 elements
Group 5 ( Water) has 2646 elements
Group 6 ( SOL) has 2646 elements
Group 7 ( non-Water) has 23 elements
Select a group:
程序要求选择所需的组并使用ENTER确认。
如果想要第2组,程序会自动化:
echo 2 | g_polystat
是否可以使用某些unix命令并在上面的输出列表中搜索单词,然后选择所需的组。
例如
然后写
回声5 | g_polystat谢谢
答案 0 :(得分:0)
...嗯
这不会这样做吗?
#### answer.sh
#!/bin/sh
sed -rn "s/Group[ ]*([0-9]*)[ ]*\([ ]*$1\)[ ]*has[ ]*[0-9]* elements/\1/gp" < /dev/stdin
然后像这样运行
./answer.sh Water < tableFile
打印
5
所以你可以像这样编辑代码:
sed -rn "s/Group[ ]*([0-9]*)[ ]*\([ ]*$1\)[ ]*has[ ]*[0-9]* elements/\1/gp" < /dev/stdin | {
read num;
echo $num;
echo $num | g_polystat;
}
你显然需要在管道应用程序中进行一些空值检查,但对我来说似乎足够了