分页: 1 / 1
【求助】awk命令行输入多行问题
发表于 : 2012-01-25 16:37
由 dtczhl
我想输入命令:
代码: 全选
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 20:46
由 wjchen
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} '
Re: 【求助】awk命令行输入多行问题
发表于 : 2012-01-25 23:19
由 aerofox
awk 的 printf 是允许加括号的,楼主的代码在我这不报错,看那错误信息,bash 好像没有把第三行当成 awk 命令参数的一部分。
Re: 【求助】awk命令行输入多行问题
发表于 : 2012-01-25 23:48
由 josephyoung
像你这种情况每行后面可以不用加 "\"的,首先确保你输入的单引号是正确的,然后将你代码不要带\输入试试还有没有报错
Re: 【求助】awk命令行输入多行问题
发表于 : 2012-01-26 9:59
由 dtczhl
是不是系统不稳定阿??
我又输了一遍
代码: 全选
dtczhl@dtczhl-desktop:~$ cat /etc/passwd | awk -F: '\
> NF != 7{\
> printf("line %d, %s", NR, $0)}\
> $1 !~ /[A-Z]/{printf("line %d, nnnn:%s", NR, 0)}'
没有问题
但我相同的又输了一遍
代码: 全选
dtczhl@dtczhl-desktop:~$ cat /etc/passwd | awk -F: '\
> NF != 7{\
> printf("abcdefg: %d %s", NR, $0)}\
bash: syntax error near unexpected token `('
又出现相同的问题了
而且有时输入换行符 \ 后没有换行,按了向上方向键敲回车又可以换行继续输入了
输出如图
代码: 全选
dtczhl@dtczhl-desktop:~$
dtczhl@dtczhl-desktop:~$ cat /etc/passwd | awk -F: '\
> NF != 7{\
> printf("line %d, %s", NR, $0)}\
> $1 !~ /[A-Z]/{printf("line %d, nnnn:%s", NR, 0)}'
dtczhl@dtczhl-desktop:~$ cat /etc/passwd | awk -F: ' \
dtczhl@dtczhl-desktop:~$ cat /etc/passwd | awk -F: '\
dtczhl@dtczhl-desktop:~$ 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
dtczhl@dtczhl-desktop:~$ cat /etc/passwd | awk -F: '\
dtczhl@dtczhl-desktop:~$ cat /etc/passwd | awk -F: '\
> NF != 7{\
> printf("abcdefg: %d %s", NR, $0)}\
bash: syntax error near unexpected token `('
dtczhl@dtczhl-desktop:~$