24小时热门版块排行榜    

查看: 3768  |  回复: 8

gongxd325

至尊木虫 (文坛精英)

[求助] 请教grep查找含特殊字符\|(的字符串

想用grep在Gaussian的输出文件中查找含"\"、"|"或”( )“的字符串,比如搜索文档中是否含B3LYP\6-31G(d)或B3LYP|6-31G(d),该如何用grep?
回复此楼
一个人做点好事并不难难的是一辈子做好事!!!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kaegi

金虫 (小有名气)

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
gmy1990: 金币+2 2012-11-08 22:44:34
gongxd325: 金币+1, 我不是找/,是找包含/的字符 2012-11-09 07:57:03
试试grep / *.com 或者grep / *.gjf
可以查找当前目录下所有com文件中是否含/,含/则会显示出来
2楼2012-11-08 21:34:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kaegi

金虫 (小有名气)

★ ★
cenwanglai: 金币+2, 谢谢回复~ 2012-11-11 14:19:16
如果要找是否含“B3LYP\6-31G(d)”,就输入grep "B3LYP\6-31G(d)” *.com,不知道是否符合你的要求。
3楼2012-11-09 08:40:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

pwzhou

铁杆木虫 (正式写手)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
cenwanglai: 金币+2, 谢谢回复~ 2012-11-11 14:19:27
grep 'B3LYP\\6-31G(d)' 文件名

注意:单引号和\\
4楼2012-11-09 10:08:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

pwzhou

铁杆木虫 (正式写手)

【答案】应助回帖

另外一个则很简单,如下均可:
grep "B3LYP|6-31G(d)" test
grep 'B3LYP|6-31G(d)' test
5楼2012-11-09 10:10:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

abdoman

木虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
gongxd325: 金币+9, ★★★★★最佳答案, 非常感谢! 2012-11-09 19:26:29
cenwanglai: 金币+3, 谢谢回复~ 2012-11-11 14:19:57
题外话:bc 是linux 自带的命令,计算器
echo 显示出一个计算 echo “8-5” | bc 
就是说做8-5的计算

grep 要查找特殊符号可以用转义字符\
比如查找 B3LYP\6-31G(d) 或者B3LYP\6-31G(d)
可以试试 grep -i "B3LYP\\6-31G\(d\)"
或者分开来 grep -i "B3LYP" | grep "6-31G\(d\)"
-i 表示不区分大小写
Youcompleteme.
6楼2012-11-09 18:05:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

abdoman

木虫 (著名写手)

引用回帖:
6楼: Originally posted by abdoman at 2012-11-09 18:05:35
题外话:bc 是linux 自带的命令,计算器
echo 显示出一个计算 echo “8-5” | bc 
就是说做8-5的计算

grep 要查找特殊符号可以用转义字符\
比如查找 B3LYP\6-31G(d) 或者B3LYP ...

| 是通道的意思
就是上一个命令的结果传给下一个命令。
命令从左到右执行。
Youcompleteme.
7楼2012-11-09 18:06:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gongxd325

至尊木虫 (文坛精英)

引用回帖:
6楼: Originally posted by abdoman at 2012-11-09 18:05:35
题外话:bc 是linux 自带的命令,计算器
echo 显示出一个计算 echo “8-5” | bc 
就是说做8-5的计算

grep 要查找特殊符号可以用转义字符\
比如查找 B3LYP\6-31G(d) 或者B3LYP ...

B3LYP/6-31G*在Linux和Windows下的Gaussian版本中的输出格式不一样,分别是B3LYP\6-31G(d)和B3LYP|6-31G(d)。我想确认在Gaussian的输出结果中用的方法都是B3LYP/6-31G*,也就是要确认文档中存在B3LYP\6-31G(d)或者B3LYP|6-31G(d),单独搜一种字符“B3LYP\6-31G(d)”我会,但两种一起搜不会。
一个人做点好事并不难难的是一辈子做好事!!!
8楼2012-11-09 19:33:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

abdoman

木虫 (著名写手)


cenwanglai: 金币+1, Thanks again~ 2012-11-11 14:20:23
引用回帖:
8楼: Originally posted by gongxd325 at 2012-11-09 19:33:26
B3LYP/6-31G*在Linux和Windows下的Gaussian版本中的输出格式不一样,分别是B3LYP\6-31G(d)和B3LYP|6-31G(d)。我想确认在Gaussian的输出结果中用的方法都是B3LYP/6-31G*,也就是要确认文档中存在B3LYP\6-31G(d)或者 ...

假设你的输出为abc.log
grep -i "B3LYP" abc.log  | grep -i "6-31g"
即可搜索B3LYP\6-31G(d)或者B3LYP|6-31G(d)
Youcompleteme.
9楼2012-11-10 19:14:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 gongxd325 的主题更新
信息提示
请填处理意见