1. 程式人生 > >Linux命令之cut、split、paste

Linux命令之cut、split、paste

new cut pass 一行 strong CA swd cat 文件

cut 提取文本並輸出

-d 指定分隔符
-c 以字符為單位
-f 以d分割後的第幾部分

示例:
1 -d 和-f 使用
取出以:為分隔符,第2部分的內容
[root@mail tmp]# echo ni:hao|cut -d ":" -f2
hao

2 -c 使用
取第2個字符
[root@mail tmp]# echo ni:hao|cut -c 2
i
取2到6的字符
[root@mail tmp]# echo ni:hao|cut -c 2-6
i:hao
取第5個字符之前的字符和第5個字符之後的字符
[root@mail tmp]# echo ni:hao|cut -c -5

ni:ha
[root@mail tmp]# echo ni:hao|cut -c 5-
ao
以上取字符或者字段都可以

取出第2和第5個字符
[root@mail tmp]# echo ni:hao|cut -c 2,5
ia

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 xaa

2 以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 newae

3 以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 pa002

paste 合並文件
-d 指定合並的分隔符
-s 每個文件占用一行

示例:
1 -d 示例
[root@mail tmp]# cat paste1 paste2
a
b
c
1
2
3
簡單合並
[root@mail tmp]# paste paste1 paste2
a 1
b 2
c 3

使用-d 指定:為分隔符合並
[root@mail tmp]# paste -d : paste1 paste2
a:1
b:2
c:3

-s使用 (合並後,每個文件占用一行)
[root@mail tmp]# paste -s paste1 paste2
a b c
1 2 3

Linux命令之cut、split、paste