当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 5 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 【求助】awk命令行输入多行问题
帖子发表于 : 2012-01-25 16:37 
头像

注册: 2011-04-17 11:44
帖子: 70
送出感谢: 3
接收感谢: 0 次
我想输入命令:
代码:
cat /etc/passwd | awk -F: ' \
NF != 7 { \
printf("line %d, does not have 7 fields: %s", NR, $0)} \
$1 !~ /[A-Za-z0-9]/{printf("line %d, nonalphanumeric user id:  %s\n", NR, $0)} '


但是每输完第3行回车后就会推出并且报错
结果见图~
附件:
1.jpg
1.jpg [ 21.79 KiB | 被浏览 909 次 ]



如何才能正确输入命令?????
先谢了~~


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 【求助】awk命令行输入多行问题
帖子发表于 : 2012-01-25 20:46 
头像

注册: 2011-05-02 19:08
帖子: 583
系统: ubuntu 12.04
送出感谢: 2
接收感谢: 41
printf 不需要打括号
代码:
cat /etc/passwd | awk -F: ' \
NF != 7 { \
printf "line %d, does not have 7 fields: %s", NR, $0} \
$1 !~ /[A-Za-z0-9]/{printf "line %d, nonalphanumeric user id:  %s\n", NR, $0} '


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 【求助】awk命令行输入多行问题
帖子发表于 : 2012-01-25 23:19 

注册: 2008-05-24 8:30
帖子: 1453
送出感谢: 2
接收感谢: 30
awk 的 printf 是允许加括号的,楼主的代码在我这不报错,看那错误信息,bash 好像没有把第三行当成 awk 命令参数的一部分。


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 【求助】awk命令行输入多行问题
帖子发表于 : 2012-01-25 23:48 
头像

注册: 2011-11-05 18:53
帖子: 158
地址: 南极圈
送出感谢: 0 次
接收感谢: 7
像你这种情况每行后面可以不用加 "\"的,首先确保你输入的单引号是正确的,然后将你代码不要带\输入试试还有没有报错


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 【求助】awk命令行输入多行问题
帖子发表于 : 2012-01-26 9:59 
头像

注册: 2011-04-17 11:44
帖子: 70
送出感谢: 3
接收感谢: 0 次
是不是系统不稳定阿??
我又输了一遍

代码:
[email protected]:~$ cat /etc/passwd | awk -F: '\
> NF != 7{\
> printf("line %d, %s", NR, $0)}\
> $1 !~ /[A-Z]/{printf("line %d, nnnn:%s",  NR, 0)}'

没有问题

但我相同的又输了一遍
代码:
[email protected]:~$ cat /etc/passwd | awk -F: '\
> NF != 7{\
> printf("abcdefg: %d %s", NR, $0)}\
bash: syntax error near unexpected token `('

又出现相同的问题了

而且有时输入换行符 \ 后没有换行,按了向上方向键敲回车又可以换行继续输入了

输出如图
代码:
[email protected]:~$
[email protected]:~$ cat /etc/passwd | awk -F: '\
> NF != 7{\
> printf("line %d, %s", NR, $0)}\
> $1 !~ /[A-Z]/{printf("line %d, nnnn:%s",  NR, 0)}'
[email protected]:~$ cat /etc/passwd | awk -F: ' \
[email protected]:~$ cat /etc/passwd | awk -F: '\
[email protected]:~$ cat /etc/passwd | awk -F: ' cat /etc/passwd | awk -F: '\
>
awk: cmd. line:1: cat /etc/passwd | awk -F: cat
awk: cmd. line:1:                   ^ syntax error
awk: cmd. line:1: cat /etc/passwd | awk -F: cat
awk: cmd. line:1:                         ^ syntax error
awk:  cat /etc/passwd | awk -F:
awk:                    ^ syntax error
awk: cmd. line:1:  cat /etc/passwd | awk -F:
awk: cmd. line:1:                          ^ syntax error
[email protected]:~$ cat /etc/passwd | awk -F: '\
[email protected]:~$ cat /etc/passwd | awk -F: '\
> NF != 7{\
> printf("abcdefg: %d %s", NR, $0)}\
bash: syntax error near unexpected token `('
[email protected]:~$


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 5 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 0 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译