本文共 2301 字,大约阅读时间需要 7 分钟。
cut 提取文本并输出
-d 指定分隔符
-c 以字符为单位-f 以d分割后的第几部分示例:
1 -d 和-f 使用取出以:为分隔符,第2部分的内容[root@mail tmp]# echo ni:hao|cut -d ":" -f2hao取出以:为分隔符,第1和第3部分
[root@mail tmp]# echo ni:hao:wo:shi |cut -d : -f 1,3ni:wo2 -c 使用
取第2个字符[root@mail tmp]# echo ni:hao|cut -c 2i取2到6的字符[root@mail tmp]# echo ni:hao|cut -c 2-6i:hao取第5个字符之前的字符和第5个字符之后的字符[root@mail tmp]# echo ni:hao|cut -c -5ni:ha[root@mail tmp]# echo ni:hao|cut -c 5-ao取出第2和第5个字符
[root@mail tmp]# echo ni:hao|cut -c 2,5ia小结:
1,3 表示1和3 1-3 表示1到3 -3 表示开头到第3 3-表示第3到最后split 分割文件
-b 指定分割后的大小
-l 指定分割后的行数(可以省略,直接用-接数字)-a 指定后缀长度,默认是2位-d 使用数字后缀,默认是字母后缀,从a开始示例:
1 -b 使用(后面接k 、m 或者K、M、G)
每个文件10M大小分割maillog[root@mail tmp]# split -b 10m maillog[root@mail tmp]# ll -h|tac-rw-r--r-- 1 root root 8.1M Jun 21 09:18 xac-rw-r--r-- 1 root root 10M Jun 21 09:18 xab-rw-r--r-- 1 root root 10M Jun 21 09:18 xaa2 以30行为单位,分割passwd文件,分割的文件以new为开头
[root@mail tmp]# split -l 30 passwd new[root@mail tmp]# ls -ltr|tac-rw-r--r-- 1 root root 1370 Jun 21 09:26 newaa-rw-r--r-- 1 root root 1501 Jun 21 09:26 newab-rw-r--r-- 1 root root 1513 Jun 21 09:26 newac-rw-r--r-- 1 root root 1493 Jun 21 09:26 newad-rw-r--r-- 1 root root 1097 Jun 21 09:26 newae3 以50行分割passwd,分割后文件以pa开头,并且以3位数字为后缀
[root@mail tmp]# split -l 50 -da3 passwd pa[root@mail tmp]# ll -rt|tac-rw-r--r-- 1 root root 2363 Jun 21 09:32 pa000-rw-r--r-- 1 root root 2542 Jun 21 09:32 pa001-rw-r--r-- 1 root root 2069 Jun 21 09:32 pa002paste 合并文件
-d 指定合并的分隔符 -s 每个文件占用一行示例:
1 -d 示例 [root@mail tmp]# cat paste1 paste2abc123简单合并 [root@mail tmp]# paste paste1 paste2 a 1b 2c 3使用-d 指定:为分隔符合并
[root@mail tmp]# paste -d : paste1 paste2a:1b:2c:32 -s使用 (合并后,每个文件占用一行)
[root@mail tmp]# paste -s paste1 paste2 a b c1 2 33 特殊用法
调整user的文件格式为stu1=abc[root@mail tmp]# cat user stu1abcstu2fffstu3d3a方法1:[root@mail tmp]# paste -s user stu1 abc stu2 fff stu3 d3a-s 后面接一个文件时候就是调整了显示方式[root@mail tmp]# paste -sd "=\n" user stu1=abcstu2=fffstu3=d3a方法二:
[root@mail tmp]# paste -d = - -<userstu1=abcstu2=fffstu3=d3a从标准输入读取,每个-代表一行其他实现方法
[root@mail tmp]# xargs -n2 <user |sed 's# #=#g'stu1=abcstu2=fffstu3=d3a[root@mail tmp]# sed 'N;s#\n#=#g' user
stu1=abcstu2=fffstu3=d3aN ,sed内置命令,不会清空模式空间内容。N命令相当于
第二行读取后模式空间内容为stu1\nabc ,然后替换后输出转载于:https://blog.51cto.com/shaiyawu/2131197