发新话题
打印

请教个shell取字符串的问题,急

请教个shell取字符串的问题,急

要在一个文件夹下面读取一个文件(假设只有一个文件,文件名为:MDA_STA_20070607121311.dat),把这个文件名进行解析,取.号前面的字符(MDA_STA_20070607121311),进行tar操作,tar生成的文件叫(MDA_STA_20070607121311.tar),这个该怎么实现啊,急,拜托各位高手帮帮我啊,感激不尽      

TOP

例如:
[dell@scsm dell]$ echo $uu
adsdf.pdf
[dell@scsm dell]$ echo ${uu/.*/}
adsdf      
前进、前进、再前进

TOP

恩,可以,强烈感谢。
另外问下,我把echo那换成 :bb=${uu/.*/}
那么$bb 的值是不是就是那个了啊      

TOP

引用:
原帖由 star713 于 2007-8-22 17:16 发表
恩,可以,强烈感谢。
另外问下,我把echo那换成 :bb=${uu/.*/}
那么$bb 的值是不是就是那个了啊
you're right       
'
◆ 发帖时请【突出主题】, 以便您的问题能够及时得到回复
◆ 发帖时请将您的【代码】或者【脚本】写在 [code] 和 [/code] 中间

TOP

引用:
原帖由 TUDOU01 于 2007-8-22 16:57 发表
例如:
[dell@scsm dell]$ echo $uu
adsdf.pdf
[dell@scsm dell]$ echo ${uu/.*/}
adsdf
这个用法可能不太安全:
引用:
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[30959 0]
; v=foo.dat.bar.dat
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[30959 0]
; echo ${v/.*/}
foo
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[30959 0]
; echo ${v/.dat/}
foo.bar.dat
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[30959 0]
; echo ${v%.dat}
foo.dat.bar
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[30959 0]
; echo ${v%.*}
foo.dat.bar
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[30959 0]
; bye
      
'
◆ 发帖时请【突出主题】, 以便您的问题能够及时得到回复
◆ 发帖时请将您的【代码】或者【脚本】写在 [code] 和 [/code] 中间

TOP

还想问下,那样做的原理是什么啊      

TOP

无他, 唯语法尔       
'
◆ 发帖时请【突出主题】, 以便您的问题能够及时得到回复
◆ 发帖时请将您的【代码】或者【脚本】写在 [code] 和 [/code] 中间

TOP

不错!不错!应考虑周密一些!      
前进、前进、再前进

TOP

引用:
原帖由 star713 于 2007-8-22 17:57 发表
还想问下,那样做的原理是什么啊
参考链接:Shell Parameter Expansion      
'
◆ 发帖时请【突出主题】, 以便您的问题能够及时得到回复
◆ 发帖时请将您的【代码】或者【脚本】写在 [code] 和 [/code] 中间

TOP

发新话题