split
将文件切割成N份:
split -n l/N -d inputfile output_prefix
mv
批量命名文件
ls|xargs -i mv {} {}.csv
rename:
rename 's/txt/csv/' *.txt # ubuntu
rename txt csv *.txt # centos
windows内对应操作:
rename *.csv.bak *.
join
- join前需要对目标文件先排序,为的是每个文件只需遍历一次就能找到所有匹配项
- 在对windows中的文本进行join时要注意每行末尾的\r,若字段在行末尾可能会导致匹配不到,需要先删除\r
comm
比较两个已排序的文件a和b
- a∩b: comm -12 a b
- a-b: comm -23 a b
- b-a: comm -13 a b
grep
在文件2中查找文件1中的行
grep -Ff file1 file2
sed
大小写转换
echo 'Abc'|sed 's/[A-Z]/\l&/g' # 大写转小写
echo 'Abc'|sed 's/[a-z]/\u&/g' # 小写转大写
xargs
将文件中的id批量插入redis队列
cat ids.txt |xargs -n1000 redis-cli -h host -a ath -p port -n db -x lpush key
可用-P
参数直接指定进程数。或向xargs发送SIGUSR1信号增加进程数,发送SIGUSR2信号减少进程数。kill -l
显示信号,可以看到kill -10
为SIGUSR1 ,kill -12
为SIGUSR2 。
查找文件
windows
findstr /S 你要查的字符串 *.mhtml