linux 查询命令 批量替换多个文件

原创 2018年04月11日 14:03:27

查询不包含WHO字符的行数据

^((?!WHO).)*$

shell 字符串分割成数组,并查询当前目录下log结尾文件,统计数量

情景:在日志中查询 出含有【单号 订单商品已发出】这个行的,并输出 单号 及查询总数

a="chn0001,chn0002"

OLD_IFS="$IFS" 
IFS="," 
arr=($a) 
IFS="$OLD_IFS" 
for s in ${arr[@]} 
do 
    echo "$s" 
    grep -rn "$s 订单商品已发出" *log |wc -l
done

echo "success"
arr=($a)用于将字符串$a分割到数组
$arr ${arr[0]} ${arr[1]} ... 分别存储分割后的数组第1 2 ... 项 ,
${arr[@]}存储整个数组。
变量$IFS存储着分隔符,这里我们将其设为逗号 "," 
OLD_IFS用于备份默认的分隔符,使用完后将之恢复默认。

当前目录查找 含义chn0001的文件

grep -rn "chn0001" *
  • : 表示当前目录所有文件,也可以是某个文件名
    -r 是递归查找
    -n 是显示行号
    -R 查找所有文件包含子目录
    -i 忽略大小写

查找出多个文件,循环 sed 替换

替换空格//xx的注释内容 为空格

方式一

for s in `find ./admin/ -type f`
do
    echo "$s"
    sed -i 's#[ |\t]\/\/.*# #g' $s
    #下面这个MAC 使用
    #sed -i "" 's#[ |\t]\/\/.*# #g' $s
    #下面这个命令是 sed 正则替换后,会自动加上win下换行符(^M),这里是 转换为unix 格式
    # 你需要的就使用,不需要的就注释掉
    dos2unix -k -o $s
    #
done

方式二

linux:
find ./admin/ -type f -exec sed -i 's#[ |\t]\/\/.*##g' {} \;
find admin -name "*php" | xargs dos2unix

MAC:
find ./admin/ -type f -exec sed -i "" 's#[ |\t]\/\/.*##g' {} \;
find admin -name "*php" | xargs dos2unix

find查找出指定的文件或文件夹 批量删除

#查找当前目录下,包含子目录,有 .DS_Store  的,批量删除
find ./ -name .DS_Store  |xargs rm -rf

#查找当前目录下,包含子目录,文件名有 php  的,批量删除
find ./ -name "*php"  |xargs rm -rf

https://www.cnblogs.com/FlyFive/p/3640243.html
http://www.jb51.net/article/52491.htm
https://www.cnblogs.com/wangkongming/p/4476933.html

版权声明:原创文章欢迎转载,不过要记得加出处哦 https://blog.csdn.net/wljk506/article/details/79222347

Linux批量替换文件内容和替换文件夹的命令

Linux 系统中经常会遇到批量替换文件内容的命令,有如下几个场景1、批量替换文件夹内文件的内容。    配合sed 和 grep两个命令使用。     1.1 在一个文件中替换字符串的命令。    ...
  • u012297629
  • u012297629
  • 2018-03-07 19:55:45
  • 57

linux批量替换多个文件中的字符串

一、linux sed 批量替换多个文件中的字符串 sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir` 例如:替换当...
  • iloveyin
  • iloveyin
  • 2015-01-07 18:49:27
  • 1003

linux下用命令批量修改替换文件内容

在linux入侵之后,我们要清除留下的一些痕迹,比如apache留下的日志.但是对于ssh登陆日志比如/var/log/wtmp 和 lastlog这类二进制文件,sed命令就爱莫能助了. Linu...
  • feverforce
  • feverforce
  • 2011-04-11 15:42:00
  • 2172

linux sed 批量替换多个文件中的字符串

一、linux sed 批量替换多个文件中的字符串sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir`例如:替换/home下所有文...
  • kauu
  • kauu
  • 2007-08-24 13:02:00
  • 43687

sed 批量替换多个文件

平常需要替换多个文件里的内容,通过sed命令就可以很方便的替换。 sed -i “s/原字符串/新字符串/g”  `grep  -rl 原字符串 所在目录` 解释: 1. sed -i ...
  • Lingphper
  • Lingphper
  • 2016-10-09 15:20:41
  • 5100

linux使用脚本shell批量替换文件中的文本

find ./ -name 'xxx.php' | xargs sed -i "s/oldstring/newstring/g" 注意查找和替换的字符串是正规表达式...
  • 0210
  • 0210
  • 2015-03-08 17:28:01
  • 1355

linux 下批量替换文件名 批量替换文件名中的字符

如果在/home/test/目录下,想把以aabbbc.org.g后缀的文件名修改为aafffc.org.g,进入该目录后,需要输入命令: rename 's/bbb/fff/' aabbbc.or...
  • jibcy
  • jibcy
  • 2015-11-04 15:09:41
  • 4828

perl命令批量替换文件内容

转自:http://www.jbxue.com/article/12638.html 使用perl命令批量替换文件内容。 对linux下的文件内容进行替换,有时不用编写perl脚本,用perl...
  • toplover2
  • toplover2
  • 2013-12-10 06:56:55
  • 1270

find grep sed 实现批量搜索文件,并替换字符串

很容易忘,记录下: find -name "*.xml"| grep "rCN" | xargs grep  测试字符1  -l | xargs sed -i "s/测试字符1/测试字符2/g" ...
  • EmMouse
  • EmMouse
  • 2016-12-15 16:53:42
  • 2546

linux下用shell、sed批量替换多个文件中的字符串

sedsed是一种非交互式的流编辑器,可动态编辑文件。vim是打开文件后和用户进行互动操作的,sed是非互动的,它处理的对象是文件的数据流。sed的工作模式是,对每一行数据,若符合样式,就执行指定的操...
  • u010902721
  • u010902721
  • 2015-05-25 21:31:45
  • 8514
收藏助手
不良信息举报
您举报文章:linux 查询命令 批量替换多个文件
举报原因:
原因补充:

(最多只允许输入30个字)