
cp dir1/{file1,file2,file3} dir2 ## 可以实现文件的批量复制
cp -r dir1/ dir2/ ### 实现整个文件夹的复制,r参数表示,如果没有文件夹dir2/ 则创建一个,如果没有r参数会报错。
cp命令并不能直接识别正则表达示,如果要复制的文件很多,会写命令写到吐血。
可以用ls查看文件夹内的所有文件,再传递给grep 用正则表示示筛选,筛选后的文件名再传递给cp命令
需要注意的是cp 不能直接接收 grep的数据,需要用到xargs 命令
xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令。
-i 或者是-I,这得看linux支持了,将xargs的每项名称,一般是一行一行赋值给 {},可以用 {} 代替。
ls |grep 'M. 1. _M. 2. |M. [1-2]. _P. 18. '|xargs -i cp {} /u01/zhh/300Zeamays/300SCMS/
在linux系统下用vim打开大小几个G、甚至几十个G的文件时,是非常慢的。
这时,我们可以利用下面的方法分割文件,然后再打开。
1、查看/导出文件的前多少行
上面命令的意思是:把big.log文件前10000行的数据写入到temp.log文件中。
2 、查看文件的后多少行
上面命令的意思是:把big.log文件后10000行的数据写入到temp.log文件中。
3 、查看文件的几行到几行
上面命令的意思是:把big.log文件第10到10000行的数据写入到temp.log文件中。
4 、根据查询条件导出
5、 实时监控文件输出(查看日志时经常会用到)
grep ingcn -rl /assign-path | xargs sed -i 's/ingcn/.ingcn/g'或
sed -i 's/ingcn/.ingcn/g' `grep ingcn -rl /assign-path`
还有一种比较复杂的写法:
grep ingcn * -R | awk -F: '{print $1}' | sort | uniq | xargs sed -i 's/ingcn/.ingcn/g'
其中命令awk用于分割字符串、uniq对结果进行除重。
、网络上现成的资料
格式: sed -i s/查找字段/替换字段/g `grep 查找字段 -rl 路径`
linux sed 批量替换多个文件中的字符串
sed -i s/oldstring/newstring/g `grep oldstring -rl yourdir`
例如:替换/home下所有文件中的.111cn.为111cn.
sed -i s/.111cn./111cn./g `grep .111cn. -rl /home`
exp:sed -i s/shabi/$/g `grep shabi -rl ./`
2、自己额外附加
2.1 将文件1.txt内的文字garden替换成mirGarden
# sed -i s/garden/mirGarden/g
1.txt sed -i 很简单
2.2 将当前目录下的所有文件内的garden替换成mirGarden
## sed -i s/garden/mirGarden/g `ls` 其实也就是ls出多个文件名而已
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)