awk命令正则表达式

sh/bash/dash/ksh/zsh等Shell脚本
pellicon
帖子: 126
注册时间: 2009-01-08 1:21

awk命令正则表达式

#1

帖子 pellicon » 2009-08-14 19:21

下面的另外一个例子是我们在 /etc 目录搜索以 “.conf” 结尾和 “a” 或者 “x” 开头的文件,使用扩展的正则表达式:
kelly is in /etc> ls -l | awk '/\<(a|x).*\.conf$/ { print $9 }'
amd.conf
antivir.conf
xcdroast.conf
xinetd.conf

以上是我看到的一个关于awk命令的例子,但是我在我的电脑上运行,得到的结果却是空空的。如图
有那位知青人世可以给我解决一下这个问题。
附件
运行结果
运行结果
头像
O_O_BOT
帖子: 2461
注册时间: 2009-05-20 19:32

Re: awk命令正则表达式

#2

帖子 O_O_BOT » 2009-08-14 19:32

print $8
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录

http://webchat.freenode.net/?channels=ubuntu-cn
[url]irc://irc.freenode.net/ubuntu-cn[/url]
pellicon
帖子: 126
注册时间: 2009-01-08 1:21

Re: awk命令正则表达式

#3

帖子 pellicon » 2009-08-14 19:58

O_O_BOT 写了:print $8
结果还是一样啊! :em06
头像
O_O_BOT
帖子: 2461
注册时间: 2009-05-20 19:32

Re: awk命令正则表达式

#4

帖子 O_O_BOT » 2009-08-14 21:01

那你究竟有没有这些文件哦 :em20
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录

http://webchat.freenode.net/?channels=ubuntu-cn
[url]irc://irc.freenode.net/ubuntu-cn[/url]
pellicon
帖子: 126
注册时间: 2009-01-08 1:21

Re: awk命令正则表达式

#5

帖子 pellicon » 2009-08-14 23:58

O_O_BOT 写了:那你究竟有没有这些文件哦 :em20
有的,adduser.conf这个就是其中之一。而且,也可以换成w开头的,可是还是没有结果 :em20
头像
c\nc
帖子: 231
注册时间: 2007-12-25 12:51

Re: awk命令正则表达式

#6

帖子 c\nc » 2009-08-15 10:49

这个,应该是 ls -1 而不是 ls -l 。

代码: 全选

ls -1 | awk '/^(a|x).+\.conf$/{print $1}'
头像
O_O_BOT
帖子: 2461
注册时间: 2009-05-20 19:32

Re: awk命令正则表达式

#7

帖子 O_O_BOT » 2009-08-15 10:57

\< 哦 也可以 ls -l print $8
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录

http://webchat.freenode.net/?channels=ubuntu-cn
[url]irc://irc.freenode.net/ubuntu-cn[/url]
pellicon
帖子: 126
注册时间: 2009-01-08 1:21

Re: awk命令正则表达式

#8

帖子 pellicon » 2009-08-15 13:29

c\nc 写了:这个,应该是 ls -1 而不是 ls -l 。

代码: 全选

ls -1 | awk '/^(a|x).+\.conf$/{print $1}'
这样可以得到结果,但是最后的{print $9} 也改成了{print $1}.

/\<(a|x).*\.conf$
/^(a|x).+\.conf$
以上这两个正则表达式有问题么?
ls -l | awk '/^(a|x).+\.conf$/{print $9}'或ls -l | awk '/^(a|x).+\.conf$/{print $8}'也无法得到正确的答案!
同样ls -1 | awk'/\<(a|x).*\.conf$ /{print $1}'也无法得到答案。难道是bash的问题??
头像
O_O_BOT
帖子: 2461
注册时间: 2009-05-20 19:32

Re: awk命令正则表达式

#9

帖子 O_O_BOT » 2009-08-15 13:51

同学 不要乱组合 要搞清楚 意思
ls -1 是单列显示 所以用 ^行头是可以的。文件名在$1
ls -l 是详细显示 有多列 文件名在$8 用\<匹配单词头 而不是用 ^匹配行头

ls -l | awk '/\<(a|x).*\.conf$/ { print $8 }'
没问题
你还是先到 /etc/ 下ls a*.conf x*.conf看看吧
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录

http://webchat.freenode.net/?channels=ubuntu-cn
[url]irc://irc.freenode.net/ubuntu-cn[/url]
pellicon
帖子: 126
注册时间: 2009-01-08 1:21

Re: awk命令正则表达式

#10

帖子 pellicon » 2009-08-15 14:05

O_O_BOT 写了:同学 不要乱组合 要搞清楚 意思
ls -1 是单列显示 所以用 ^行头是可以的。文件名在$1
ls -l 是详细显示 有多列 文件名在$8 用\<匹配单词头 而不是用 ^匹配行头

ls -l | awk '/\<(a|x).*\.conf$/ { print $8 }'
没问题
你还是先到 /etc/ 下ls a*.conf x*.conf看看吧
结果还是没变!!!
附件
截图
截图
头像
O_O_BOT
帖子: 2461
注册时间: 2009-05-20 19:32

Re: awk命令正则表达式

#11

帖子 O_O_BOT » 2009-08-15 15:08

那就现看看ls -l 的输出
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录

http://webchat.freenode.net/?channels=ubuntu-cn
[url]irc://irc.freenode.net/ubuntu-cn[/url]
pellicon
帖子: 126
注册时间: 2009-01-08 1:21

Re: awk命令正则表达式

#12

帖子 pellicon » 2009-08-15 16:00

O_O_BOT 写了:那就现看看ls -l 的输出
请看
附件
截图
截图
头像
O_O_BOT
帖子: 2461
注册时间: 2009-05-20 19:32

Re: awk命令正则表达式

#13

帖子 O_O_BOT » 2009-08-15 16:28

ls -l 的输出 应该是每个文件一行的
你是不是alias ls了。。。。。
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录

http://webchat.freenode.net/?channels=ubuntu-cn
[url]irc://irc.freenode.net/ubuntu-cn[/url]
pellicon
帖子: 126
注册时间: 2009-01-08 1:21

Re: awk命令正则表达式

#14

帖子 pellicon » 2009-08-15 17:35

O_O_BOT 写了:ls -l 的输出 应该是每个文件一行的
你是不是alias ls了。。。。。
我没有这么操作过,ls-1的显示结果就是一个文件一行的
头像
O_O_BOT
帖子: 2461
注册时间: 2009-05-20 19:32

Re: awk命令正则表达式

#15

帖子 O_O_BOT » 2009-08-15 17:58

说了那么就久了 上irc聊吧
看我签名
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录

http://webchat.freenode.net/?channels=ubuntu-cn
[url]irc://irc.freenode.net/ubuntu-cn[/url]
回复