拆分由句点 (.) 分隔的文件名

Posted

技术标签:

【中文标题】拆分由句点 (.) 分隔的文件名【英文标题】:Splitting Filename delimited by period (.) 【发布时间】:2012-09-17 09:58:27 【问题描述】:

我正在编写一个 sh 文件,其中 var 为:

c=aabbcc.DP.09-25-2012_14_17.dmp

我只想复制另一个变量中的初始部分,例如:

d = aabbcc

我应该如何修剪我的变量?

【问题讨论】:

【参考方案1】:

如果sh 是指bash,那么

d="$c%%.*"

否则

d="`echo "$d"|cut -d. -f1`"

也许会。

【讨论】:

不,对不起,我正在使用 Shell 脚本。 (.sh) 你能帮帮我吗,提前谢谢。 我知道这是一个 shell 脚本,问题是你使用的是什么 shell。只需尝试两种解决方案,看看是否有效。 @WilliamPursell,更好 ;) 我永远不记得什么是 bashism,什么不是。【参考方案2】:

perl:

D=`echo $c | perl -lne 's/([^\.]*)\..*/\1/;print'`

sed:

D=`echo $c | sed 's/\([^\.]*\)\..*/\1/'`

awk:

D=`echo $c | awk -F. 'print $1'`

【讨论】:

【参考方案3】:

expr 命令兼容任何 sh 实现,不需要管道

d=`expr $c : '\([^\.]*\)'`

【讨论】:

以上是关于拆分由句点 (.) 分隔的文件名的主要内容,如果未能解决你的问题,请参考以下文章

用shell写一个程序,把一个大文件拆分成为多个小文件,要求:拆分文件以“;”作为分隔判断来拆分文件;

根据分隔符将一个文件拆分为多个文件

拆分由任何非数字字符串分隔的数字

Perl:根据空行拆分文件进行处理

R拆分由不同数量的空格分隔的一列字符

拆分由空白字符分隔的数字列。