首页 > 系统相关 >从文件路径中提取文件名的shell操作

从文件路径中提取文件名的shell操作

时间:2023-09-25 09:56:04浏览次数:33  
标签:dir3 dir2 shell file 文件名 从文件 拿掉 txt my

Sundray-SW /extdir #sfp=/extdir/debug_bin/ops-devsd
Sundray-SW /extdir #echo ${sfp##*/}
ops-devsd
Sundray-SW /extdir #basename ${sfp}
ops-devsd
Sundray-SW /extdir #dirname ${sfp}
/extdir/debug_bin

 

${ } 的一些特殊功能:
file=/dir1/dir2/dir3/my.file.txt

${file#*/}:拿掉第一条 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt
${file##*/}:拿掉最后一条 / 及其左边的字符串:my.file.txt
${file#*.}:拿掉第一个 . 及其左边的字符串:file.txt
${file##*.}:拿掉最后一个 . 及其左边的字符串:txt
${file%/*}:拿掉最后条 / 及其右边的字符串:/dir1/dir2/dir3
${file%%/*}:拿掉第一条 / 及其右边的字符串:(空值)
${file%.*}:拿掉最后一个 . 及其右边的字符串:/dir1/dir2/dir3/my.file
${file%%.*}:拿掉第一个 . 及其右边的字符串:/dir1/dir2/dir3/my

记忆的方法为:
# 是去掉左边(在键盘上 # 在 $ 之左边)
% 是去掉右边(在键盘上 % 在 $ 之右边)
单一符号是最小匹配﹔两个符号是最大匹配。
${file#/}(不加*号)表示只去掉最左边的/


命令 解释    结果
${file:0:5}    提取最左边的 5 个字节             /dir1
${file:5:5}    提取第 5 个字节右边的连续 5 个字节      /dir2
${file/dir/path} 将第一个 dir 提换为 path           /path1/dir2/dir3/my.file.txt
${file//dir/path}     将全部 dir 提换为 path            /path1/path2/path3/my.file.txt
${#file}          获取变量长度                  27

标签:dir3,dir2,shell,file,文件名,从文件,拿掉,txt,my
From: https://www.cnblogs.com/fallenmoon/p/17727226.html

相关文章

  • bash shell快速备忘单
    linuxbashshell脚本的快速参考备忘单(全)原创 诺苏编程 Qt历险记 2023-08-1214:07 发表于广东收录于合集#linux10个#echo1个#bash1个入门hello.sh#!/bin/bashVAR="world"echo"Hello$VAR!"#=>Helloworld!执行脚本$bashhello.sh 变量NAME=......
  • ansible教程:使用win_shell和win_copy从 HTTP 文件服务器下载文件并将其复制到目标位置
    with_fileglob参数无法直接指定HTTP文件服务器上的文件路径。它是用于在本地文件系统中进行文件的模式匹配,并将匹配的文件作为迭代项来执行任务。如果你需要从HTTP文件服务器上下载文件并将其复制到目标位置,你可以使用适当的工具或库来实现这个任务。下面是一个示例,使用curl......
  • 一文读懂Shell进程操作:编程新手必看
    什么是程序,什么又是进程程序是指令的集合,而进程则是程序执行的基本单元。为了让程序完成它的工作,必须让程序运行起来成为进程,进而利用处理器资源、内存资源,进行各种 I/O 操作,从而完成某项特定工作。从这个意思上说,程序是静态的,而进程则是动态的。进程有区别于程序的地方还有:进程......
  • shell-进程管理脚本
    功能函数列表:    1、functionget_all_group 返回进程组列表字符串2、functionget_all_process 返回进程名称列表字符串        3、functionget_process_info 返回进程详细信息列表字符串,详细信息包括:运行状态、   PID、CPU、MEM、启......
  • WebShell不能执行命令常见问题总结
    一:执行命令相关组件/函数/类和方法ASP:Wscript.shell,Shell.ApplicationASPX:ProcessStartInfo、Wscript.shell,Shell.Application...PHP:system,passthru,shell_exec,exec,popen,proc_open...JSP:Runtime.getRuntime().exec(command)...二:WebShell执行命令常见问题说明1.说明解决:可能是D盾,不......
  • WebShell不能执行命令常见问题总结
    一:执行命令相关组件/函数/类和方法ASP:Wscript.shell,Shell.ApplicationASPX:ProcessStartInfo、Wscript.shell,Shell.Application...PHP:system,passthru,shell_exec,exec,popen,proc_open...JSP:Runtime.getRuntime().exec(command)...二:WebShell执行命令常见问题说明1.说明解决:可能是D盾,不......
  • shell-sed命令
    sedsed主要是用来将数据进行选取、替换、删除、新增的命令sed[选项]  [动作]  文件名选项:  -n:一般sed命令会把所有数据都输出到屏幕,如果加入此选择则只会把经过sed命令处理的行输出到屏幕  -e:允许对输入数据应用多条sed命令编辑  -i:用sed的修改结果直接修改......
  • 在 Shell命令中,通常会使用通配符表达式来匹配一些文件
    #在Shell命令中,通常会使用通配符表达式来匹配一些文件*,?,[],{}例:字符含义实例匹配0或多个字符a*ba与b之间可以有任意长度的任意字符,也可以一个也没有,如aabcb,axyzb,a012b,ab。?匹配任意一个字符......
  • 【问题解决】shell脚本执行错误 $‘\r‘:command not found
    问题原因:在Windows中,换行符是由回车符(\r)和换行符(\n)组成的,而在Unix/Linux等系统中,只使用换行符(\n)作为换行标志。当你在Unix/Linux系统上运行一个包含Windows格式换行符的脚本时,Shell会尝试解释其中的回车符,导致错误提示$‘\r’:commandnotfound。这是因为Shell将回......
  • shell-awk-命令
    AWK是一种处理文本文件的语言,是一个强大的文本分析工具。FS内置变量  awk -F  字段分隔符(默认是任何空格)1、截取文档中的某个段head-n2/etc/passwd|awk-F':''{print$1}' 2、匹配字符和字符串awk'/oo/'test.txtoperator:x:11:0:operator:/rooto:/......