首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Bash -使用单个文件递归替换特定类型的所有文件,保留原始文件名

Bash是一种Unix shell和命令语言,常用于在Linux和其他类Unix系统上进行脚本编程和命令行操作。它提供了一种交互式的方式来与操作系统进行通信,同时也可以编写脚本来自动化各种任务。

对于使用单个文件递归替换特定类型的所有文件并保留原始文件名的需求,可以使用Bash中的find命令结合sed命令来实现。具体步骤如下:

  1. 打开终端,进入需要进行替换的文件所在的目录。
  2. 使用以下命令来递归查找特定类型的文件:
  3. 使用以下命令来递归查找特定类型的文件:
  4. 其中,.表示当前目录,-type f表示只查找文件,-name "*.特定类型"表示文件名以特定类型结尾,例如.txt
  5. 对于找到的每个文件,使用以下命令进行替换:
  6. 对于找到的每个文件,使用以下命令进行替换:
  7. 其中,-exec表示对每个找到的文件执行后面的命令,sed -i 's/要替换的内容/替换后的内容/g'表示使用sed命令进行替换,{}表示当前找到的文件。

这样,Bash脚本会递归查找特定类型的文件,并对每个文件进行替换操作,同时保留原始文件名。

腾讯云相关产品中,可以使用云服务器(CVM)来执行Bash脚本,具体产品介绍和链接如下:

  • 产品名称:云服务器(CVM)
  • 产品介绍链接:https://cloud.tencent.com/product/cvm

请注意,以上答案仅供参考,具体操作步骤可能会因环境和需求而有所不同。在实际操作中,请根据具体情况进行调整和验证。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Linux常用命令09 - sed

默认情况下一行一行地读取文件,只更改第一次出现SEARCH_REGEX,当提供替换标志时,所有出现情况都将被替换 INPUTFILE 要在其上运行命令文件名 最好在参数周围加上引号,这样 shell...: ls file.txt file.txt.bak 递归查找和替换 有时,您希望递归地搜索目录中包含字符串文件,并替换所有文件字符串。...这可以通过使用 find 或 grep 等命令递归地查找目录中文件并将文件名管道化为 sed 来实现。 下面的命令将递归搜索当前工作目录文件夹中文件,并将文件名传递给 sed。 find .....*' -print0 | xargs -0 sed -i 's/foo/bar/g' 如果你只想搜索和替换具有特定扩展名文件文本,你可以使用: find ....-type f -name "*.md" -print0 | xargs -0 sed -i 's/foo/bar/g' 另一种选择是使用 grep 命令递归地查找包含搜索模式所有文件,然后将文件名通过管道传递给

2.1K30

Linux—系统基础一

Bash是在类UNIX系统中,是Bourne shell(sh)使用最成功其中一个shell改进版本。 当shell被交互使用时,它将显示一个字符串时,它从用户等待一个命令。...支持文件名通配 支持变量 支持编程 Bash支持引号: "" //双引号,弱引用,可以实现变量替换 '' //单引号,强引用,不完成变量替换 `` //反引号,键盘左上角...(可以有0个或多个) 3.2命令类型 Linux命令分为两种类型: 内部命令:shell内置 外部命令:在文件系统某个路径下有一个与命令名称相应可执行文件 type //显示指定命令属于哪种类型...,一个文件到一个文件,多个文件到一个目录 -r //递归拷贝,拷贝目录时必须使用此选项 -p //拷贝时保留原权限 -a /.../相当于-rp mv //移动文件 文本内容查看命令 cat //将文件内容输出至标准输出(屏幕) -n //显示行号 注意:使用cat查看文件内容时会将文件所有内容加载至内存

65820
  • 7个实用Bash历史快捷方式【Linux-Command line】

    这样做问题是,我只使用一次快捷方式,当我尝试所有可能性时,我变得目光呆滞。 然后,我将投入工作并完全忘记它们,只保留著名!! trick,那些我第一次开始使用Bash时就学到技巧。...它会将最后一个命令最后一个参数替换为你行。 考虑这种情况: 屏幕快照 2019-11-20 下午5.02.31.png 算了,我在命令中输入了wrongfile文件名。...最后一个命令项目索引为零,并且可以用“!:”之后数字代替。 显然,你也可以使用它来重用上一个命令中特定参数,而不是所有参数。 3. The "all the arguments" one: !...我可以通过以下方法来做到这一点: 屏幕快照 2019-11-20 下午6.19.25.png 它显示:“获取最后一个命令(/etc/system)最后一个参数,并删除其最后一个文件名组件,仅保留/etc...要用所有“s”替换所有“f”,我可以输入: 屏幕快照 2019-11-20 下午6.27.39.png 它不仅对单个字符起作用。

    85810

    压缩解压类命令一览表

    $bzip2 -dc filename.bz2 #使用c指定到标准输出,输出文件filename内容,不会讲filename.bz2删除 #示例6.使用bzip2时候将所有后面看做文件...LF字符; -L:显示版权信息; -m:将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中; -n:不压缩具有特定字尾字符串文件; -o:以压缩文件内拥有最新更改时间文件为准...,将压缩文件更改时间设成和该文件相同; -q:不显示指令执行过程; -r:递归处理,将指定目录下所有文件和子目录一并处理; -S:包含系统和隐藏文件; -t:把压缩文件日期设成指定日期...-s:将文件名空白字符转换为底线字符 -V:保留VMS文件版本信息 -X:解压缩时同时回存文件原来UID/GID 案例使用: #示例3.解压文件到指定目录 unzip test.zip #把...Tips: 在某些系统上,zcat可能作为gzcat安装,以保留要压缩原始链接。

    1.3K10

    100个Linux命令(1)-文件处理类

    如果当前目录是链接目录,则显示链接目录文件路径,使用-P选项显示定位到链接原始目录。...(此机制由relatime维护) bash shell 通配符 文件名通配匹配整体文件名,而非部分匹配 (1)* 匹配任意长度任意字符。"*" 无法匹配文件名以 "."...开头文件 shopt -s dotglob ls * 即递归文件内部,又要匹配文件名,如递归找出多层目录/path下所有的".css"文件,这时可以开启globstar功能,使用"两星连珠"(**...选项 n:输出最后num行,如果使用-n +num表示打印从第num行开始所有行 f:监控文件变化 --pid=PID:和-f一起使用,在给定PID进程死亡之后,终止文件监控 v:显示文件名 15...可以使用-print0使用"\0"分隔,将"\n"替换为"\0",实现不分行显示。

    1.7K11

    linux目录结构及文件管理

    -c 详细显示指令执行过程,便于排错或分析程序执行形   -f 列出文件文件名文件类型   -F 使用指定分隔符号替换输出文件名后默认”:” 分隔符   -i 输出mime 类型字符串   -L...查看对应软链接对应文件文件类型   -z 尝试去解读压缩文件内容   --help显示命令在线帮助 查看软连接对应文件类型: [root@bogon ~]# file -L /etc/httpd.conf...-d  解压缩,相当于gunzip   -c  将解压或压缩结果输出至标准输出   -r  递归处理,将指定目录下所有文件及子目录一并处理   -#  指定压缩比,#表示数字1-9 bzip2命令:...-k  保留文件   -d  解压   -#  指定压缩比,#表示数字1-9,默认为6   bzcat  不解压情况下查看文件内容 打包压缩: zip命令:跨平台压缩工具  -r 处理指定目录和指定目录下使用子目录...使用gzip程序 -p 打包时保留文件及目录权限 -P 打包时保留文件及目录绝对路径 -C 释放目的地 打包: 对文件和目录打包和压缩(c) tar -cf file.tar file tar

    1.6K10

    Linux 基础上

    Bash是在类UNIX系统中,是Bourne shell(sh)使用最成功其中一个shell改进版本。 当shell被交互使用时,它将显示一个字符串时,它从用户等待一个命令。...(可以有0个或多个) 类型 内部命令:shell内置 外部命令:在文件系统某个路径下有一个与命令名称相应可执行文件 type 显示那种类型 [root@C20230104840383 ~]# type...-r //递归删除,删除目录时必须使用此选项 -f //强制删除,不询问 cp //复制文件,一个文件到一个文件,多个文件到一个目录 可同时移动多个...最后必须为目的地 -r //递归拷贝,拷贝目录时必须使用此选项 -p //拷贝时保留原权限 -a //相当于-rp...特性 bash支持以下特性: 支持命令历史、命令补全 支持管道、重定向 支持命令别名 支持命令行编辑 支持命令行展开 支持文件名通配 支持变量 支持编程 bash支持引号 "" //双引号,弱引用

    71830

    我们一起学一学渗透测试——黑客应该掌握Linux基础

    文件系统类型 Linux中默认使用文件类型: EXT3,第三代扩展(Extended)文件系统 SWAP,交换文件系统L inux支持其它文件类型: FAT16、FAT32、NTFS XFS、JFS...(K、M等)显示信息 -R:递归显示内容 --color:以颜色区分不同类型文件 目录操作命令——du 统计目录及文件空间占用情况 常用命令选项: -a:统计时包括所有文件,而不仅仅只统计目录...] 常用查询条件: -name:按文件名称查找 -size:按文件大小查找 -user:按文件属主查找 -type:按文件类型查找 文件编辑——vi vi是一个较大unix命令,在启动时候也有它自己选项和参数...-w:统计单词数 -c:统计字符数 默认显示所有的 查看历史命令——history 压缩命令——gzip、bzip2 只针对单个文件压缩 常用选项: -9:显示高压缩比 -d:释放压缩文件 使用方式...-x:解开归档文件 -t:列表查看包内文件(不释放解包) -p:解包是保留原始文件及目录权限 -C:解包是指定释放目标文件夹 -z:调用gzip程序,进行解压或者压缩 -j:调用bzip2程序,

    1K10

    盘点那些基础必备命令【Linux】

    :新建空文件, 格式:touch 文件名… 2、复制/删除/移动文档 绝对路径:以/ 开始路径叫做绝对路径 相对路径: 以当前开始路径叫相对路径 cp — Copy 格式:cp [选项]…...gg 跳转到文件首行 G 跳转到文件末尾行 复制 yy、#yy 复制光标处一行、#行 粘贴 p 粘贴到光标处之后 删除 x 或 Delete键 删除光标处单个字符 dd、#dd 删除光标处一行...放弃已有更改后强制退出 :wq 或 :x 保存已有修改后退出 字符串替换 操作类型 设置指令 用 途 行内替换 /old/new 替换当前行第一个“old” /old/new/g 替换当前行所有的...“old” 区域内替换 :n,m s/old/new/g 替换第n-m行所有的“old” :%s /old/new/g 替换文件所有的“old” 5、归档与压缩: tar 制作备份 用法:tar...-cf .tar归档包名 被归档文件… … 逐一复制并归档,原始文件保留 选项含义:-c 创建、-f 归档 tar 释放备份 用法:tar -xf .tar归档包 解包并逐一提取,原始文件保留

    26950

    Linux文件归档,压缩与解压缩

    :压缩文件时,保存原来文件名称及时间戳记; -q 或 --quiet:不显示警告信息; -r 或 --recursive:递归处理,将指定目录下所有文件及子目录一并处理; -t 或 --test:测试压缩文件是否正确无误...若要保留原始文件,请使用此参数; -s 或 --small:降低程序执行时内存使用量; -t 或 --test:测试.bz2压缩文件完整性; -v 或 --verbose:压缩或解压缩文件时,显示详细信息...; -n:不压缩具有特定字尾字符串文件; -o:以压缩文件内拥有最新更改时间文件为准,将压缩文件更改时间设成和该文件相同; -q:不显示指令执行过程; -r:递归处理,将指定目录下所有文件和子目录一并处理...-t 是指定压缩类型,这里定为7z,可不指定,因为7za默认压缩类型就是7z。 -r 表示递归所有的子文件夹。 Mytest.7z 是压缩好后压缩包名。 /home:是压缩目标。...Mytest.7z 是压缩文件,这里默认使用当前目录下Mytest.7z。 -r 表示递归解压缩所有的子文件夹。 -o 是指定解压到目录,-o后是没有空格,直接接目录。这一点需要注意。

    9.4K40

    Linux shell命令用法及常见用例之tar命令

    前言 tar命令用来归档多个文件或目录到单个归档文件中,并且归档文件可以进一步使用gzip或者bzip2等技术进行压缩。...)是类Unix系统中使用最广泛命令,用于归档多个文件或目录到单个归档文件中,并且归档文件可以进一步使用gzip或者bzip2等技术进行压缩,还能保留文件权限。...命令选项 选项 含义 -A或–catenate 新增文件到以存在备份文件 -B 设置区块大小 -c或–create 建立新备份文件 -C 这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项...tar分为三种模式,-c,-r,-u三个一类,为归档/压缩模式,在该模式下,tar会递归遍历指定目录下所有目录和文件,并创建归档文件。-x表示为去归档/解压模式,-t表示为打印列表模式。...-p:保留文件原始信息,权限等等 -P:解压时保留绝对路径。 –exclude=FILE:在打包压缩时候,不要将FILE打包。 打包并创建归档文件 示例:打包一个目录。

    2K31

    程序员50大Linux面试问题及答案

    虽然zip命令能压缩和解压单个文件,但是更多时候广泛使用tar命令来做归档。...在bash shell中,环境变量分为两类: 全局变量:对于 shell会话和所有生成子shell都是可见。 局部变量: 只对创建他们shell可见。 28.储存用户文件是?包括哪些信息?...package_name //只删除软件包保留数据文件和配置文件 如果不希望保留数据文件和配置文件 可以执行:yum erase package_name 34.源码安装通常路子?...w filename:将文件保存到另一个文件中。 wq:将缓冲区数据保存到文件中并退出。 36.查看设备还有多少磁盘空间? df 可以查看所有已挂在磁盘使用情况。...默认情况,du会显示当前目录所有文件、目录、子目录磁盘使用情况。 [root@iz2ze76ybn73dvwmdij06zz src]# du 4 ./debug 4 .

    27620

    Unix & Linux 大学教程 学习总结

    Unix & Linux 大学教程    Harley Hahn 0,操作系统最重要功能 控制计算机并在计算机启动或者重新启动时初始化计算机 支持与计算机交互所使用界面 为需要使用计算机资源(磁盘空间...export(bash) set -/+o 显示shell选项控制(bash) 17,引用和转义 使用反斜线引用单个字符(称为转义了这个字符) 使用单引号引用一串字符 使用双引号引用一串字符,但是保留...PS1  shell 提示 export PS1="\u\w\@\$" prompt(csh) ``命令替换 19,fc -l history 20,自动补全 文件名补全 命令补全 变量补全 用户标识补全...主机名补全(bash) 21,别名 alias,umalias alias 'a=alias' 22,初始化文件 .profile文件 .rc文件 登陆shell(.bash_profile) 非登陆...) (1)从输入流中读取一行 (2)执行指定命令,对该行进行必要交换 (3)将该行写入到输出流中 number [,number] |/regex/ 对指定行进行操作或者包含特定字符串行 5,10s

    2.3K10

    linux常用命令、bash语法学习笔记,持续记录

    cp 源文件 目标文件 复制文件或目录 cp -i 源文件名 目录名 覆盖文件前提示 cp -r 源文件名 目录名 若给出文件是目录文件,则cp将递归复制该目录下所有子目录和文件,目标文件必须为一个目录名...cp -d 源文件 目标文件 若对象为“链接文件”,则保留该“链接文件属性 cp -p 源文件 目标文件 保留原始文件属性 cp -a 源文件 目标文件 相当于-pdr 9. mv命令 mv命令用于移动文件或将文件重命名...head -n 20 文件名 查看文件前20行内容 18. tr命令 tr命令用于替换文本文件字符,格式: tr [原始字符] [目标字符]。...参数: if 输入文件名称 of 输出文件名称 bs 设置每个“块”大小 count 设置要复制“块”个数 23. file命令 file命令用于查看文件类型,格式: file 文件名。...文件,所以必须放选项最后 -p 保留原始权限与属性 -P 使用绝对路径来压缩 -C 指定解压到目录 -c和-x 参数不能同时使用 用户使用时则是根据文件后缀来决定应使用何种格式参数进行解压。

    1.6K30

    Linux命令达人:文件目录秒速定位技巧!

    以下是一个基本find命令使用示例: find / -name "fname" 这个命令会在根目录(/)下递归地搜索名为"fname"文件。请确保替换"fname"为你要查找实际文件名。...然后,你可以使用以下命令来查找文件: locate fname 和find命令一样,你需要将"fname"替换为你要查找实际文件名。 3....使用 which 命令 which命令用于查找可执行文件路径。如果你知道文件名,并且想要查找该文件所在目录,可以使用which命令。...使用 type 命令(仅限于Bash shell) 如果你正在使用Bash shell,并且想要查找一个函数、别名或内建命令位置,可以使用type命令。...需要注意是,某些命令可能需要特定权限才能执行,例如find命令在搜索系统目录时可能需要root权限。在使用这些命令时,请确保你具有适当权限。

    28610

    SHELL(bash)脚本编程六:执行流程

    3、关键字 对于非重定向或赋值语句第一个单词进行判定,如果是保留关键字,则根据语法定义判定该种命令类型语法和结尾(结尾一般为某种控制操作符)。...4、别名 如果非重定向或赋值语句第一个单词是一个普通单词,bash会根据别名记录判定该单词是不是一个命令别名,如果是,则使用对应文本替换该别名(注意此文本可以是shell能够接受任意字符)。...然后继续分割并判定替换文本,重复上述同样过程,如果替换后仍有别名(不同于前面曾扩展过别名),则递归地展开并判定。 另外,默认时只有在交互式shell环境下才允许别名扩展。...和[,如果包含这些字符,此单词就作为一个模式对文件名进行通配符匹配。 匹配到所有结果将成为命令新单词。...复合命令 bash中每种复合命令都使用一个C函数来实现,功能包括执行恰当展开(如for循环中关键词in后面的单词),执行特定命令,根据命令返回值来变更执行流程等等。

    1.7K40

    sh脚本

    字符代表文件路径里面的任意单个字符,不包括空字符。比如,Data???匹配所有Data后面跟着三个字符文件名。 # 存在文件 a.txt 和 b.txt $ ls ?....[:digit:]]* 字符类也属于文件名扩展,如果没有匹配文件名,字符类就会原样输出。 注意:文件名可以使用通配符。 Bash 允许文件名使用通配符,即文件名包括特殊字符。...$ echo "\\" \ 双引号另一个常见使用场合是,文件名包含空格。这时就必须使用双引号,将文件名放在里面。...$ ls "two words.txt" 上面命令中,two words.txt是一个包含空格文件名,否则就会被 Bash 当作两个文件。 双引号还有一个作用,就是保存原始命令输出格式。...,丢弃了所有原始格式。

    10.8K30

    必知必会,程序员都应该会Linux50个知识点!

    虽然zip命令能压缩和解压单个文件,但是更多时候广泛使用tar命令来做归档。...在bash shell中,环境变量分为两类: 全局变量:对于 shell会话和所有生成子shell都是可见。 局部变量: 只对创建他们shell可见。 28.储存用户文件是?...package_name //只删除软件包保留数据文件和配置文件 如果不希望保留数据文件和配置文件 可以执行:yum erase package_name 34.源码安装通常路子?...w filename:将文件保存到另一个文件中。 wq:将缓冲区数据保存到文件中并退出。 36.查看设备还有多少磁盘空间? df 可以查看所有已挂在磁盘使用情况。...默认情况,du会显示当前目录所有文件、目录、子目录磁盘使用情况。 [root@iz2ze76ybn73dvwmdij06zz src]# du 4 ./debug 4 .

    70640

    10分钟就能学会,Linux操作系统21个shell常用命令

    ,包括隐藏文件 -c 按文件修改时间排序 -F 在列出文件名后以符号表示文件类型:目录文件后加“/”,可执行文件后加“*”,符号链接文件后加“@”,管道文件后加“|”,socket文件后加“...通常与-l选项搭配使用 -l 以长格式显示文件详细信息。每行列出信息依次是:文件类型与权限、链接数、文件属主、文件属组、文件大小、文件建立或修改时间、文件名。...选项 含 义 -a 该选项通常在复制目录时使用,它保留链接、文件属性,并递归地复制目录 -d 复制时保留链接 -f 删除已经存在目标文件而不提示...,则cp将递归复制该目录下所有子目录和文件,目标文件必须为一个目录名 -l 不作复制,只是链接文件 注意: 为防止用户在不经意情况下用cp命令破坏另一个文件,建议用户在使用...例程: 使用 rmdir -p递归删除dir1和dir3目录,使用 rm –r命令删除dir2目录及其下所有文件和子目录。

    1.8K60
    领券