Chinaunix
标题:
ssh远程执行awk时的匹配问题
[打印本页]
作者:
registcn
时间:
2014-01-25 10:39
标题:
ssh远程执行awk时的匹配问题
1) echo $(ssh testhost "echo haha lala |awk '\$2~/lala/{print \$2}'&& echo ok")
lala ok
2) echo $(ssh testhost "echo haha baba |awk '\$2 !~/lala/{print \$2}'&& echo ok")
-bash: !~/lala/{print: event not found
3) echo `ssh testhost "echo haha lala |awk '\$2 ~/lala/{print \$0}'&& echo ok"`
awk: cmd. line:1: ~/lala/{print -bash}
awk: cmd. line:1: ^ syntax error
见上述现象描述,测试发现,$()中ssh远程时用awk的~可以,!~不可以,而若用反引号``,则连~都不可以了。
求两个说法:
2)中怎么摘$()中用!~
3) 中怎么用~
################之前发过类似帖子,无下文了,特批新帖#####################
作者:
bikkuri
时间:
2014-01-25 12:45
加\转义
回复
1#
registcn
作者:
registcn
时间:
2014-01-25 15:23
转义试过的,2)和3)都提示awk: cmd. line:1: ^ backslash not last character on line
回复
2#
bikkuri
作者:
变形金刚四
时间:
2014-01-26 23:07
帮顶
作者:
jason680
时间:
2014-01-27 11:43
回复
1#
registcn
$ echo $(ssh localhost
"
echo haha lala | awk '\$2!~/lala/{print}' && echo ok
"
)
bash: !~/lala/{print}': event not found
$ echo $(ssh localhost
'
echo haha lala | awk "!\$2~/lala/{print}" && echo ok
'
)
.... password:
ok
作者:
registcn
时间:
2014-01-27 12:44
楼主不想看到这种变通的方法,其实之前那个帖子就是这么解决的。还是想看下,如果就按双引号ssh,应该怎么写
回复
5#
jason680
作者:
jason680
时间:
2014-01-27 14:50
本帖最后由 jason680 于 2014-01-27 15:25 编辑
回复
6#
registcn
All roads lead to Rome
$ echo $(ssh localhost "echo haha lala | awk '$2!~/lala/{print}' && echo ok ")
bash: !~/lala/{print}': event not found
$ echo $(ssh localhost "echo haha lala | awk '
match
(\$2,/lala/)==
1
{print}' && echo ok ")
haha lala ok
$ echo $(ssh localhost "echo haha lala | awk '
match
(\$2,/lala/)
<1
{print}' && echo ok ")
ok
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2