【问题标题】:Splitting Filename delimited by period (.)拆分由句点 (.) 分隔的文件名
【发布时间】:2026-02-15 15:50:01
【问题描述】:

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

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

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

d = aabbcc

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

【问题讨论】:

    标签: awk sh


    【解决方案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 : '\([^\.]*\)'`
      

      【讨论】: