分页: 1 / 1

这个命令怎么写

发表于 : 2009-01-13 12:10
noovesky
1.输出文件a.txt中第2,3个空格之间的内容 ,若是在第n和n+1个空格之间呢?
2.已知文件b.txt中内容为:1.c 2.c 3.c 4.c. 用sed输出b.txt中第2个含.c的字符串,这里即2.c
最好用sed

Re: 这个命令怎么写

发表于 : 2009-01-13 14:11
bones7456
1.

代码: 全选

cut -d " " -f 3
2. 非要sed会很累.

Re: 这个命令怎么写

发表于 : 2009-01-13 14:14
xiooli
1, awk '{print $3}' a.txt
2, awk '{print $2}' b.txt|grep ".c"

Re: 这个命令怎么写

发表于 : 2009-01-13 14:17
eexpress
sed -n '2p'

Re: 这个命令怎么写

发表于 : 2009-01-13 21:15
noovesky
最好用sed,我手机上没cut,3楼的命令报错

Re: 这个命令怎么写

发表于 : 2009-01-14 10:06
goodluck1982
手机? Moto Linux Mobile ?

Re: 这个命令怎么写

发表于 : 2009-01-14 21:02
noovesky
goodluck1982 写了:手机? Moto Linux Mobile ?
moto roka e6. linux系统,有些命令没有,有些被精简了

Re: 这个命令怎么写

发表于 : 2009-01-14 21:33
goodluck1982
noovesky 写了:
goodluck1982 写了:手机? Moto Linux Mobile ?
moto roka e6. linux系统,有些命令没有,有些被精简了
呵呵,猜就是
我的是E2

Re: 这个命令怎么写

发表于 : 2009-01-15 6:08
aerofox

代码: 全选

sed 's/[^ ]* [^ ]* //; s/ .*//' a.txt
sed 's/[^ ]* //; s/ .*//' b.txt

Re: 这个命令怎么写

发表于 : 2009-01-15 12:28
aerofox
方法是多样的,用 shell 内部命令也可以解决:

代码: 全选

read a b c < b.txt
echo $b

Re: 这个命令怎么写

发表于 : 2009-01-15 17:18
noovesky
aerofox 写了:

代码: 全选

sed 's/[^ ]* [^ ]* //; s/ .*//' a.txt
sed 's/[^ ]* //; s/ .*//' b.txt
如果要求是第n和n+1个空格之间呢?

Re: 这个命令怎么写

发表于 : 2009-01-15 21:15
aerofox
noovesky 写了:
aerofox 写了:

代码: 全选

sed 's/[^ ]* [^ ]* //; s/ .*//' a.txt
sed 's/[^ ]* //; s/ .*//' b.txt
如果要求是第n和n+1个空格之间呢?

代码: 全选

n=2
sed "s/\([^ ]* \)\{$n\}//; s/ .*//" a.txt

Re: 这个命令怎么写

发表于 : 2009-01-15 21:56
noovesky
aerofox 写了:
noovesky 写了:
aerofox 写了:

代码: 全选

sed 's/[^ ]* [^ ]* //; s/ .*//' a.txt
sed 's/[^ ]* //; s/ .*//' b.txt
如果要求是第n和n+1个空格之间呢?

代码: 全选

n=2
sed "s/\([^ ]* \)\{$n\}//; s/ .*//" a.txt
非常感谢。我也想到了用\{$n\},不过我用',出错了。
“ 与 ' 有什么区别

Re: 这个命令怎么写

发表于 : 2009-01-15 23:21
aerofox
双引号内会做变量名扩展,就是把$n换成它的值,单引号不行。