加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 如何使用基本的unix工具从路径名中删除扩展名

发布时间:2020-12-14 02:34:15 所属栏目:Linux 来源:网络整理
导读:我需要收集一个文件列表并将其放在一个文本文件中.但是,文件不应包含其扩展名. 我现在没有删除文件扩展名的命令: ls -1 /a/dir/*/dir/* textfile 所有选定文件的扩展名为.[a-z] {3} (我需要这个的原因是因为我需要一个唯一的基本名称列表,并且在此步骤之后
我需要收集一个文件列表并将其放在一个文本文件中.但是,文件不应包含其扩展名.

我现在没有删除文件扩展名的命令:

ls -1 /a/dir/*/dir/* > textfile

所有选定文件的扩展名为.[a-z] {3}

(我需要这个的原因是因为我需要一个唯一的基本名称列表,并且在此步骤之后唯一将解决该问题)

解决方法

我总是希望包含一个仅限bash的解决方案:
for file in /a/dir/*/dir/*; do
    echo "${file%.*}" >> ~/file_list
done

并使用可选的if语句将文件限制为您请求的扩展名:

shopt -s extglob
for file in /a/dir/*/dir/*; do
    if [[ "$file" =~ .[a-zA-Z]{3}$]]; then
        echo "${file%.*}" >> ~/file_list
    fi
done

在this similar serverfault问题中我解释了“${file%.*}”参数扩展.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读