首页 > 系统相关 >linux-批量修改文件内容

linux-批量修改文件内容

时间:2024-07-22 11:51:24浏览次数:12  
标签:tmp 文件 批量 文件名 exec 修改 file linux find

1.批量修改文件内容

$find . -type f  -exec sed -i 's/oldname/newname/g' {} +

#此命令含义:在当前目录及其所有子目录中查找所有文件,并对这些文件执行 sed 命令,将文件内容中的所有 oldname 字符串替换为 newname。
#find .:从当前目录(.)开始查找文件。
#type f:指定查找的类型为文件(file),这意味着 find 将仅查找文件,不包括目录。
#-exec:对找到的每个文件执行后面的命令。
#sed -i 's/oldname/newname/g':这是要执行的命令。sed 是一个流编辑器,用于对文本进行处理。
#- {}:是一个占位符,代表 find 命令找到的文件名。
#+:表示 find 命令将所有匹配的文件名作为列表传递给 -exec 指定的命令,而不是一次传递一个文件名。这种方式可以提高执行效率,因为它减少了 sed 命令的调用次数。   

2.批量修改文件名

  • 脚本如下:

在当前目录及其所有子目录下查找所有文件名中包含"tmp"的文件,并将这些文件的文件名中的"tmp"替换为"xxx"


find . -type f -name '*tmp*' -exec sh -c '
    file="$1"
    dir="$(dirname "$file")"
    base=$(basename "$file")
    # 只替换文件名中的tmp为xxx
    echo $base
    newbase="${base//tmp/xxx}"
    echo $newbase
    if [ "$base" != "$newbase" ]; then
        newfile="$dir/$newbase"
        mv "$file" "$newfile"
    fi
' _ {} \;

#-name '*tmp*':这个选项用来匹配文件名中包含"tmp"字符串的文件。
#-exec sh -c '...' _ {} \;:这个选项允许对匹配到的每个文件执行指定的shell命令。这里的sh -c是执行一段shell脚本。

标签:tmp,文件,批量,文件名,exec,修改,file,linux,find
From: https://www.cnblogs.com/littlecc/p/18315741

相关文章

  • Nexpose v6.6.261 for Linux & Windows - 漏洞扫描
    Nexposev6.6.261forLinux&Windows-漏洞扫描Rapid7VulnerabilityManagement,releaseJul17,2024请访问原文链接:https://sysin.org/blog/nexpose-6/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org您的本地漏洞扫描程序搜集通过实时覆盖整个网络,随......
  • Nessus Professional 10.7.5 Auto Installer for RHEL 9/AlmaLinux 9/Rocky Linux 9 (
    NessusProfessional10.7.5AutoInstallerforRHEL9/AlmaLinux9/RockyLinux9(updatedJul2024)发布Nessus试用版自动化安装程序,支持macOSSonoma、RHEL9和Ubuntu24.04请访问原文链接:https://sysin.org/blog/nessus-auto-install-for-rhel-9/,查看最新版。原创作......
  • Acunetix v24.7 (Linux, Windows) - Web 应用程序安全测试
    Acunetixv24.7(Linux,Windows)-Web应用程序安全测试Acunetix|WebApplicationSecurityScanner请访问原文链接:https://sysin.org/blog/acunetix/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org重要提示AcunetixPremium现在使用日历化版本命名。请注意,从......
  • Metasploit Pro 4.22.2-2024071501 (Linux, Windows) - 专业渗透测试框架
    MetasploitPro4.22.2-2024071501(Linux,Windows)-专业渗透测试框架Rapid7Penetrationtesting,releaseJul15,2024请访问原文链接:https://sysin.org/blog/metasploit-pro-4/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org世界上最广泛使用的渗透测试框架......
  • 一些linux命令行方法
    复制部分文件要在Linux中复制整个文件夹但排除WAV和FIG文件,你可以使用rsync命令并结合多个--exclude参数来实现。以下是一个示例命令:rsync-av--exclude='*.wav'--exclude='*.fig'source_folder/destination_folder/-a:表示以归档模式复制文件夹,保留所有文件属性......
  • 如何用 WinDbg 调试Linux上的 .NET程序
    一:背景1.讲故事最新版本1.2402.24001.0的WinDbg真的让人很兴奋,可以将自己伪装成GDB来和远程的GDBServer打通来实现对Linux上.NET程序进行调试,这样就可以继续使用熟悉的WinDbg命令,在这个版本中我觉得WinDbg不再是WinDbg,而是XDbg了,画个简图如下:简图有了,接下来就......
  • linux系统基础:查找文件 20240722
    在Shell中查找文件是一个常见的任务,可以使用多种工具来完成,例如find、locate、grep等。以下是一些使用这些工具的示例。1.使用find命令find命令是最常用的文件查找工具之一,它在指定目录及其子目录下搜索符合条件的文件。示例:查找/home/user目录下所有以.txt结尾的文件。find......
  • Facebook在Linux服务器上使用selenium登录
    我已经想到了这个项目。其中一部分是登录Facebook帐户。这段代码在我的本地机器(windows)和本地服务器(ubuntu)上完美运行,但当我在在线Linux服务器上运行它时它不起作用。deflogin_facebook(driver,email,password):try:logging.info("LoggingintoFacebook......
  • Linux 下部署 syncthing 中继服务器
    来自......
  • Linux工作原理6用户空间如何启动
    6用户空间如何启动内核启动init(第一个用户空间进程)的时刻意义重大--不仅仅是因为内存和CPU终于可以正常运行系统了,还因为在这个时刻,你可以看到系统的其他部分是如何作为一个整体建立起来的。在此之前,内核的执行路径都是由相对较少的软件开发人员定义好的。用户空间的模块化和......