经典shell

1每两行合并

sed 'N;s/\n//'

2每行后加空行

sed 'G'

3计算行数(类似wc -l)

sed  -n '$='

4将foo替换成bar 并且出去包含baz的行

sed '/baz/!s/foo/bar/g'

5匹配到regex的行后加以空行

sed '/regex/G'

6每一行首加五个空格

sed 's/^/     &/g'

7 统计出空白行的行号

grep -n '^$'

8文件批量重命名

find ./ -name "*.txt" -printf %f\\n|sed 's/\(.*\)\.txt/mv & \1\_mall\.txt/'|sh

find ./ -name "*.sh" -printf %f\\n |awk -F . '{print $1}'|xargs -i mv {}.sh {}.shell

find ./ -name "*.sql" |while read fname;do echo mv $fname ${fname/.sql/.LOG};done

9scp 和tar组合压缩快速传输

tar c ./ |ssh 192.168.100.1 "cd /opt/aaa && tar -x"

10 统一id对应的号码

awk -F: '{a[$1]=a[$1]"\n"$2;b[$1]++}END{for (i in a) print "["i"]""\t"b[i] a[i]}' file.txt


你可能感兴趣的:(shell)