每天一點linux命令:分割與合併文字
阿新 • • 發佈:2018-11-14
在linux的實際應用中,我們有時候需要對檔案進行分割與合併處理,我們可以使用split和paste命令進行此類操作。
split命令
split 是以一個很好的分割工具,它可以將一個檔案按行分割出來。(split只能按行分割,如果按列,可以用cut,當然更強大的還是用gawk)。
split的常規用法:
split [OPTION]… [INPUT [PREFIX]
引數 | 含義 |
---|---|
-b | 設定的分割大小值,系統會以此值為單位對檔案進行分割 |
-l | 指定分割後的每一個檔案包含多少行 |
-d | 指定分割檔案使用數字字尾 |
-a | 指定檔名的字尾長度,預設是兩位 |
以上幾個引數應該是實際用這個命令中最為常用的引數了,我們不妨找幾個例子看一下:
這是一個非常簡單的文字,下面我們做幾個操作驗證一下上面的引數,看看上面的結果:
1)將這個文字分割成多個檔案,每個檔案有4行資料:
命令:split -l 4 test_split
結果:可以看到test_split檔案被分成了3個,其中前兩個有4行,最後一個只有1行
而且被分割的檔案命名預設都是以"x"開頭的,然後後面的預設長度是2位,從aa–zz按順序依次排列。所以我們可以用-a和-d對分割後的檔名進行設定:
2)設定檔名的字尾為4位數:
命令:split -a 4 -l 3 test_split
通過-a引數指定分割後的檔名字尾為4位,
3) 將檔名的字尾設定為數字
上面的例項預設的字尾名都是英文,我想用數字怎麼辦,引數-d可以滿足你。
命令:
split -d -l 3 test_split
4)將檔案按照指定的大小進行分割
我這裡有一個12M大小的日誌檔案。將其按照6M大小進行分割。如下:
需要注意的時候,-b後面可以直接指定大小的單位,比如2K,3M,6G等等。
paste命令
對很多人來說,可能使用cat命令將多個文字合併到一起會是比較常用的操作。但是cat命令只能用於將第二個文字放到第一個之後,像這樣:
這裡有兩個文件,一個記錄了學生的名字,一個是記錄了成績,現在我們想把它們合到一起:
paste會將多個文件橫向整合到一起,如下面:
命令:
paste name score
paste會將每個檔案相同行的內容合成新的一行,中間用tab鍵隔開,可以用-d引數修改分隔符。
paste的引數只有兩個,但是都比較常用:
引數 | 功能 |
---|---|
-d | 指定使用的分隔符,預設是tab符,\t |
-s | 將檔案的內容合併到一行,預設用tab鍵隔開,同樣可以用-d指定 |
需要注意的是:-d引數指定分隔符不能同時用多個,使用多個時只會將第一個作為分隔符,下面這個例子:
可以看到一個冒號和多個冒號是一樣的,都是取得第一個冒號作為分隔符。
再來個 -s引數的例子,對一個檔案和多個檔案都可以操作:
初次寫部落格!很多地方寫的不好,如有大神指點,感激不盡!!