shell训练营Day3

Day 3

1.命令split切割,shell特殊符号
split命令可以将一个大文件分割成很多个小文件,有时需要将文件分割成更小的片段,比如为提高可读性,生成日志等。
命令选项:
-b:值为每一输出档案的大小,默认单位为 byte。
-l:值为每一输出档的列数大小。

命令示例:
分割成每个为50k的文件(注意当split分割完后会保存原文件)

[root@localhost test]# ls
a.txt
[root@localhost test]# du -sh a.txt
252K    a.txt
[root@localhost test]# split -b 50K a.txt        //使用-b选项,把a.txt文件分割成每个为50k的小文件。
[root@localhost test]# ls
a.txt  xaa  xab  xac  xad  xae  xaf

使用分割并指明分割文件的头缀
[root@localhost test]# ls
a.txt
[root@localhost test]# split -b 50k a.txt aa //指明分割的文件每个开头为aa
[root@localhost test]# ls
aaaa aaab aaac aaad aaae aaaf a.txt

把a.txt分割成每个文件最多有10行的文件
[root@localhost test]# ls
a.txt
[root@localhost test]# split -l 10 a.txt //分割成每个文件最多有10行的小文件
[root@localhost test]# ls
a.txt xaa xab xac //可见分了三个小文件,每个文件的内容为10行

2.另外几个和管道有关的命令
cut 分割,-d 分隔符 -f 指定段号 -c 指定第几个字符
sort 排序, -n 以数字排序 -r 反序 -t 分隔符 -kn1/-kn1,n2
wc -l 统计行数 -m 统计字符数 -w 统计词
例:cat a.txt | wc -l
uniq 去重, -c统计行数,必须先经过sort排序后才能去重
cat -A 查看包括隐藏字符在内的所有内容

3.shell特殊符号
命令连接符: “||”、“&&”、“;”

cat a.txt ; cat b.txt : 不管cat a.txt是否执行成功都会执行cat b.txt;
cat a.txt &&cat b.txt : 只有cat a.txt执行成功后才会执行cat b.txt;
cat a.txt || cat b.txt : 表示cat a.txt执行成功后,cat b.txt不执行;

4.重定向
& 是一个描述符,如果1或2前不加&,会被当成一个普通文件。

1>&2 意思是把标准输出重定向到标准错误.

2>&1 意思是把标准错误输出重定向到标准输出。

&>filename 意思是把标准输出和标准错误输出都重定向到文件filename中

猜你喜欢

转载自blog.51cto.com/12898947/2332631