Linux 文件夹下所有文件指定字符串替换

sed -i "s/learndata/NewDisk\/learndata/g" `grep learndata -rl --include="*.py" ./`

背景:更改代码生成的文件和读取的文件的所在目录,需要更改该所有代码中涉及到文件操作的路径
之前放在learndata文件夹下,现在放在,NewDisk/learndata路径下

  • sed:文件操作命令
    -i:替换
    s/str1/str2/表示查找str1并替换为str2,后面跟g表示一行中有多个str1的时候,都替换,而不是仅替换第一个
    ``之间的表示要替换的文件,使用grep命令搜索。(注意这里不是单引号,是飘)
  • grep
    grep str1 -rl ./中str1为要搜索的字符串,参数r递归搜索文件夹下的所有文件,l查询多文件时只输出包含匹配字符的文件名。
    [options]主要参数:
    -c:只输出匹配行的计数。
    -I:不区分大 小写(只适用于单字符)。
    -h:查询多文件时不显示文件名。
    -l:查询多文件时只输出包含匹配字符的文件名。
    -n:显示匹配行及 行号。
    -s:不显示不存在或无匹配文本的错误信息。
    -v:显示不包含匹配文本的所有行。

删除文件夹下指定文件名的所有文件

find . -maxdepth 1 -name "*.jpg" -print -exec rm {} \;
  • .表示当期目录
  • -maxdepth 1表示当前目录下一级目录中
  • -name "*.jpg"表示所有文件名中含有.jpg的文件
  • -print输出到终端
  • -exec rm {} \;执行删除操作,{}代表输出到终端的文件路径

文件夹下文件太多,使用ls会卡住

可以显示一部分文件,命令

ls -1f| head -n 10
Logo

更多推荐