linux批量
❶ linux涓镓归噺镆ユ垒镟挎崲鏂囨湰鍐呭逛緥瀛
.镓归噺镆ユ垒镆愪釜鐩涓嬫枃浠剁殑鍖呭惈镄勫唴瀹癸纴渚嫔傦细
# grep -rn "瑕佹垒镆ユ垒镄勬枃链" ./
2.镓归噺镆ユ垒骞舵浛鎹㈡枃浠跺唴瀹广
# sed -i "s/瑕佹垒镆ユ垒镄勬枃链/镟挎崲钖庣殑鏂囨湰/g" `grep -rl "瑕佹垒镆ユ垒镄勬枃链" ./`
sed镄勫叾浠栫敤娉曞备笅锛
1銆佸垹闄よ岄栫┖镙
sed 's/^[ ]*//g' filename
sed 's/^ *//g' filename
sed 's/^[[:space:]]*//g' filename
2銆佽屽悗鍜岃屽墠娣诲姞鏂拌
琛屽悗锛歴ed 's/pattern//n/g' filename
琛屽墠锛歴ed 's/pattern//n/g' filename
浠h〃pattern
3銆佷娇鐢ㄥ彉閲忔浛鎹(浣跨敤鍙屽紩鍙)
sed -e "s/$var1/$var2/g" filename
4銆佸湪绗涓琛屽墠鎻掑叆鏂囨湰
sed -i '1 i/鎻掑叆瀛楃︿覆' filename
5銆佸湪链钖庝竴琛屾彃鍏
sed -i '$ a/鎻掑叆瀛楃︿覆' filename
6銆佸湪鍖归厤琛屽墠鎻掑叆
sed -i '/pattern/ i "鎻掑叆瀛楃︿覆"' filename
7銆佸湪鍖归厤琛屽悗鎻掑叆
sed -i '/pattern/ a "鎻掑叆瀛楃︿覆"' filename
8銆佸垹闄ゆ枃链涓绌鸿屽拰绌烘牸缁勬垚镄勮屼互鍙#鍙锋敞閲婄殑琛
grep -v ^# filename | sed /^[[:space:]]*$/d | sed /^$/d
find锻戒护
find -name '瑕佹煡镓剧殑鏂囦欢钖' | xargs perl -pi -e 's|琚镟挎崲镄勫瓧绗︿覆|镟挎崲钖庣殑瀛楃︿覆|g'
#镆ユ垒镟挎崲褰揿墠鐩褰曚笅鍖呭惈瀛楃︿覆骞惰繘琛屾浛鎹
find -name '*.txt' | xargs perl -pi -e 's|鏅烘収涔℃潙|鍖楅儴灞卞尯|g'
#阃掑綊镆ユ垒镟挎崲
find . -type f -name '*.html' | xargs perl -pi -e 's|鏅烘収涔℃潙|鍖楅儴灞卞尯|g'
#鎼灭储鐩褰昄OG鍖呭惈鏄剧ず鍑烘潵
find ./ -name '*log*' -type d
find ./ -name '*Log*' -type d more
褰撶劧杩桦彲浠ュ埄鐢 linux vim 镓归噺镟挎崲
鍙瀵瑰綋鍓嶈岃繘琛屾浛鎹锛
Example
:s/XXX/YYY/g
,濡傛灉闇瑕佽繘琛屽叏閮ㄦ浛鎹锛
Example
:%s/XXX/YYY/g
濡傛灉闇瑕佸规寚瀹氶儴鍒呜繘琛屾浛鎹,鍙浠ョ敤V杩涘叆visual妯″纺,鍐嶈繘琛
Example
:s/XXX/YYY/g
鎴栬呭彲浠ユ寚瀹氲屾暟瀵规寚瀹氲寖锲磋繘琛屾浛鎹:
Example
:10,31s/XXX/YYY/g
鑻ラ渶瑕佹樉绀鸿屽彿锛屽湪vim涓
Example
:set nu
鍙栨秷鏄剧ず琛屽彿锛
Example
:set nonu
:s/well/good/ 镟挎崲褰揿墠琛岀涓涓 well 涓 good
:s/well/good/g 镟挎崲褰揿墠琛屾墍链 well 涓 good
:n,$s/well/good/ 镟挎崲绗 n 琛屽紑濮嫔埌链钖庝竴琛屼腑姣忎竴琛岀殑绗涓涓 well 涓 good
:n,$s/well/good/g 镟挎崲绗 n 琛屽紑濮嫔埌链钖庝竴琛屼腑姣忎竴琛屾墍链 well 涓 good
n 涓烘暟瀛楋纴鑻 n 涓 .锛岃〃绀轰粠褰揿墠琛屽紑濮嫔埌链钖庝竴琛
:%s/well/good/(绛夊悓浜 :g/well/s//good/) 镟挎崲姣忎竴琛岀殑绗涓涓 well 涓 good
:%s/well/good/g(绛夊悓浜 :g/well/s//good/g) 镟挎崲姣忎竴琛屼腑镓链 well 涓 good
鍙浠ヤ娇鐢 # 浣滀负鍒嗛殧绗︼纴姝ゆ椂涓闂村嚭鐜扮殑 / 涓崭细浣滀负鍒嗛殧绗
:s#well/#good/# 镟挎崲褰揿墠琛岀涓涓 well/ 涓 good/
:%s#/usr/bin#/bin#g 鍙浠ユ妸鏂囦欢涓镓链夎矾寰/usr/bin鎹㈡垚/bin
❷ 在Linux系统中批量删除多个文件的方法总结
当我们在linux系统中要删除数万或者数十万甚至数百万的文件时使用rm -rf *就不太好用,因为要等待很长一段时间。在这种情况之下我们可以使用linux系统命令rsync来巧妙的处理。rsync实际上用的是替换原理,处理数十万个文件也是秒删。
1. rsync安装,有些系统默认安装有该命令
ubuntu系统:
代码如下:
sudo apt-get install rsync
fedora 系统:
代码如下:
sudo yum install rsync
其他的可以源码安装,到下面的网站下载
http://rsync.samba.org
2. rsync提供了一些跟删除有关的参数
rsync --help | grep delete
--del an alias for --delete-ring
--delete delete extraneous files from destination dirs
--delete-before receiver deletes before transfer, not ring
--delete-ring receiver deletes ring transfer (default)
--delete-delay find deletions ring, delete after
--delete-after receiver deletes after transfer, not ring
--delete-excluded also delete excluded files from destination dirs
--ignore-errors delete even if there are I/O errors
--max-delete=NUM don't delete more than NUM files
其中--delete-before接收者在传输之前进行删除操作
3. 示例
清空目录或文件,如下:
1、先建立一个空目录
代码如下:
mkdir /data/blank
2、用rsync删除目标目录
代码如下:
rsync --delete-before -d -a -H -v --progress --stats /data/blank/ /var/edatacache/
或者
代码如下:
rsync --delete-before -d /data/blank/ /var/edatacache/
这样/var/edatacache目录就被快速的清空了。
选项说明:
–delete-before 接收者在传输之前进行删除操作
–progress 在传输时显示传输过程
-a 归档模式,表示以递归方式传输文件,并保持所有文件属性
-H 保持硬连接的文件
-v 详细输出模式
–stats 给出某些文件的传输状态
-d transfer directories without recursing
删除文件夹
如果大量小文件都集中在几个目录中,那么这个方法就有用了。
代码如下:
rm -f /var/log/httpd/access.log
将会强制删除/var/log/httpd/access.log这个文件
-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思
-i 进行交互式删除。
提示:使用rm命令要小心。因为一旦文件被删除,它是不能被恢复的。了防止这种情况的发生,可以使用i选项来逐个确认要删除的文件。如果用户输入y,文件将被删除。如果输入任何其他东西,文件则不会删除。
使用这个rm -rf删除文件的时候一定要格外小心,linux没有回收站的。
rm -r 目录名:
将子目录及子目录中所有档案删除
代码如下:
[root@localhost test]# ls -l
总计 24drwxr-xr-x 7 root root 4096 10-25 18:07 scf
drwxr-xr-x 2 root root 4096 10-26 14:51 test1
drwxr-xr-x 3 root root 4096 10-25 17:44 test2
drwxrwxrwx 2 root root 4096 10-25 17:46 test3
drwxr-xr-x 2 root root 4096 10-25 17:56 test4
drwxr-xr-x 3 root root 4096 10-25 17:56 test5
代码如下:
[root@localhost test]# rm -r test1
rm:是否进入目录 “test1”? y
rm:是否删除 一般文件 “test1/log3.log”? y
rm:是否删除 目录 “test1”? y
代码如下:
[root@localhost test]# ls -l
总计 20drwxr-xr-x 7 root root 4096 10-25 18:07 scf
drwxr-xr-x 3 root root 4096 10-25 17:44 test2
drwxrwxrwx 2 root root 4096 10-25 17:46 test3
drwxr-xr-x 2 root root 4096 10-25 17:56 test4
drwxr-xr-x 3 root root 4096 10-25 17:56 test5
[root@localhost test]#
rm -rf 目录名 :
把子目录及子目录中所有档案删除,并且不用一一确认
代码如下:
[root@localhost test]# rm -rf test2
[root@localhost test]# ls -l
总计 16drwxr-xr-x 7 root root 4096 10-25 18:07 scf
drwxrwxrwx 2 root root 4096 10-25 17:46 test3
drwxr-xr-x 2 root root 4096 10-25 17:56 test4
drwxr-xr-x 3 root root 4096 10-25 17:56 test5
[root@localhost test]#