linn

Linux下批量替换多个文件中的字符串的简单方法。用sed命令可以批量替换多个文件中的字符串。

命令如下:sed -i “s/原字符串/新字符串/g” `grep 原字符串 -rl 所在目录`

例如:我要把 charset=gb2312 替换为 charset=UTF-8,执行命令:sed -i “s/charset=gb2312/charset=UTF-8/g” ‘grep charset=gb2312 -rl /www’ 即可。

 

如果把文件按竖线"|"或分号";"分割替换成hive的"\01"分割

sed -i \'s/|/\x1/g;
s/;/\x1/g
\' a.txt

 

把一个[文件目录]\[类别目录]\[日期目录]\*.tar.gz改成gzip格式,并替换分隔符,换成hive的"\01"分割

for dir in `ls .`
 do
   if [ -d $dir ]
   then
     echo $dir
     cd $dir

 for dir in `ls .`
 do
   if [ -d $dir ]
   then
     echo $dir
     cd $dir
     find . -mindepth 1 -name "*.tar.gz" -type f -exec tar -zxvf {} \; -exec rm -rf {} \; 
     find . -mindepth 1 -name "*.*" -type f -exec sed -i \'s/|/\x1/g;s/;/\x1/g\' {} \; -exec gzip -r {} \; 
     cd ..
   fi
done

     cd ..
   fi
done

 

分类:

技术点:

相关文章:

  • 2021-11-01
  • 2021-10-03
  • 2021-10-03
  • 2021-10-03
  • 2021-08-12
  • 2021-12-31
  • 2021-12-24
  • 2021-09-17
猜你喜欢
  • 2021-12-13
  • 2021-08-12
  • 2021-10-03
  • 2022-01-07
  • 2021-10-03
  • 2021-12-24
  • 2022-01-07
相关资源
相似解决方案