如何用bash命令在指定行添加、替换、删除指定内容

sed主要是以行为单位进行处理,可以将数据进行替换、删除、新增、选取等特定的工作

sed [-nefri] 'command' 指定文本
   -n∶使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
   -e∶直接在指令列模式上进行 sed 的动作编辑;
   -f∶直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作;
   -r∶sed 的动作支援的是延伸型正规表示法的语法。(预设是基础正规表示法语法)
   -i∶直接修改读取的档案内容,而不是由萤幕输出。

    a   ∶新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
    c   ∶取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
    d   ∶删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
    i   ∶插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
    p  ∶列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作~
    s  ∶取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要用bat脚本批量删除文件夹名字中的指定文字,可以按照以下步骤操作: 1. 首先,打开一个文本编辑器,新建一个bat脚本文件。可以使用任何文本编辑器,如记事本、Notepad++等。 2. 在脚本文件中,使用"for"循环遍历文件夹。可以使用以下命令来获取文件夹列表: ```bash for /d %%i in ("文件夹路径") do ( ) ``` 其中,“文件夹路径”是要操作的文件夹的路径。可以使用相对路径或绝对路径。 3. 在"for"循环的括号内,使用"set"命令替换文件夹名称中的指定文字。例如,如果要删除文件夹名称中的"指定文字",可以使用以下命令: ```bash set "new_name=%%~ni" set "new_name=!new_name:指定文字=!" ``` 这里将文件夹名称保存在"new_name"变量中,并使用"!"语法将"指定文字"替换为空字符串。 4. 使用"rename"命令来重命名文件夹。例如,可以使用以下命令: ```bash rename "%%i" "!new_name!" ``` 这里使用"!"语法来引用变量,并使用"rename"命令来将文件夹重命名为"new_name"变量中的名称。 5. 最后,保存并关闭脚本文件。 请注意,使用bat脚本进文件夹重命名时,应谨慎操作,以免删除了重要文件夹。 在运脚本之前,最好在备份系统或测试环境中进测试,以避免意外损失。 ### 回答2: 可以使用bat脚本批量删除文件夹名字中的指定文字,具体步骤如下: 1. 首先,打开记事本或者其他文本编辑器,创建一个新的bat文件。 2. 在bat文件中,添加如下代码: ```bat @echo off setlocal enabledelayedexpansion set target=指定文字 set folder_path=文件夹路径 for /d %%i in (%folder_path%\*) do ( set "folder=%%~nxi" set "new_folder=!folder:%target%=!" if not "!folder!"=="!new_folder!" ( ren "%%i" "!new_folder!" ) ) pause ``` 3. 在上述代码中,你需要修改`指定文字`为你需要删除的文字,`文件夹路径`为你需要批量删除文件夹的路径。 4. 保存并关闭bat文件。 5. 双击运bat文件,它将批量删除文件夹名字中的指定文字。 注意事项: - 运bat文件时,要确保文件夹路径正确,以免删除了其他文件夹。 - `set folder_path=文件夹路径`中的文件夹路径可以是相对路径或绝对路径,如`set folder_path=C:\folder`或`set folder_path=.\folder`。 - 使用前请注意备份相关数据,以防误操作删除错误的文件夹。 希望以上内容对你有所帮助! ### 回答3: 在BAT脚本中,可以使用一些命令和技巧来实现批量删除文件夹名字中的指定文字。 首先,我们可以使用`for /d`命令来遍历当前目录下的文件夹,然后使用`ren`命令重命名操作。 以下是一个示例脚本,用于删除文件夹名字中的指定文字: ```bat @echo off setlocal enabledelayedexpansion set "target=指定文字" set "replacement=" for /d %%d in (*) do ( set "folder=%%~d" set "newFolder=!folder:%target%=%replacement%!" if not "!folder!"=="!newFolder!" ( ren "%%~d" "!newFolder!" ) ) ``` 在脚本中,可以修改`target`变量来指定需要删除的文字。然后,使用`for /d`命令遍历当前目录下的文件夹,并将文件夹名字传递给`ren`命令重命名操作。 重命名操作中使用了`!folder:%target%=%replacement%!`的语法,这会将`folder`变量中的`target`内容替换成`replacement`内容。如果文件夹名字发生了改变,则执`ren`命令重命名。 注意,在BAT脚本中,使用`!`而不是`%`来延迟变量解析,以确保在循环中正确使用变量。 这样,运脚本后,文件夹名字中的指定文字就会被删除了。请确保在运脚本之前备份重要的文件夹,以免意外删除数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值