如何提取一行里的特定数字

sh/bash/dash/ksh/zsh等Shell脚本
回复
caike
帖子: 30
注册时间: 2005-12-09 16:22
送出感谢: 0
接收感谢: 0

如何提取一行里的特定数字

#1

帖子 caike » 2008-02-26 23:03

假如有一行文字,

代码: 全选

$1 '< ../inputs/2298.inp.975.1 > $2/t17


如何才能 $2/t 后面的数字?
java程序员 linux菜鸟 C++初学者
http://ke-cai.net
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#2

帖子 eexpress » 2008-02-26 23:12

这数据可变不
$2是变量?
☎ t="$1 '< ../inputs/2298.inp.975.1 > $2/t17"; s=`echo $t|grep -o '/t[0-9]*'`;echo ${s#\/t}
17
● 鸣学
caike
帖子: 30
注册时间: 2005-12-09 16:22
送出感谢: 0
接收感谢: 0

#3

帖子 caike » 2008-02-26 23:25

里面的$1, $2是变量,

那一行是存在temp文件里的,
我试了一下 

代码: 全选

cat temp | grep -o '/t[0-9]*'

输出了两行:

代码: 全选

/t
/t17
java程序员 linux菜鸟 C++初学者
http://ke-cai.net
头像
iblicf
帖子: 3766
注册时间: 2007-01-15 17:15
送出感谢: 0
接收感谢: 0

#4

帖子 iblicf » 2008-02-26 23:43

笨笨 :wink:

sed 's/.*\$2\/t//'
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#5

帖子 eexpress » 2008-02-27 12:10

多行?
不如cat temp|while read i; do echo ${i##*\/t};done
不明确你的情况。自己多试试。
● 鸣学
回复

回到 “Shell脚本”