awk按照多個分隔符進行分割

2021-06-21 22:21:39 字數 810 閱讀 8488

我們知道awk可以進行類似於cut之類的操作,如乙個檔案data如下

zhc-123|zhang

hongchangfirst-99|zhang

hongchang-100|zhang

如果我們

awk -f 『-』 『』 data

會列印出

zhchongchangfirst

hongchang

但是如果我想根據多個分隔符進行分割呢?一種辦法是兩次awk,但是我們可以一次告訴awk我們所有的分隔符,如-和|這兩個,如

awk -f 『[-|]』 『』 data

會列印出

zhang

zhang

zhang

就這麼簡單,還有乙個問題,如果我們想用作為分隔符怎麼辦?有辦法,這樣就行:

awk -f 『』 

『』 data

這裡在多說乙個技巧,如果你想把兩個檔案按照對應的每行放在同一行上,可以用paste,比如:

data1檔案為 1

2 3data2的檔案為

zhang

zhchongchangfirst

那麼你想要得到

1 zhang

2 zhc

3 hongchangfirst

那麼你這樣就也可以,

paste data1 data2

預設使用tab鍵作為份分隔符,還可以自定義分隔符,如用=號:

paste -d『=』 data1 data2

原文:hongchangfirst

hongchangfirst的主頁:

二,awk分隔符

在前一篇文章中我們略微提到過 分隔符 但是並沒有細說,那麼我們今天就聊聊什麼是分隔符,awk有哪些分隔符,awk的預設分割符是空格,但是,這樣描述並不精確,因為,awk的分隔符還分為兩種,輸入分隔符 和 輸出分隔符 此處我們先將分隔符的概念列出,看不懂沒關係,我們會一一進行舉例,到時自然會明白。輸入...

awk linux 分隔 awk多分隔符

awk的 f引數可以指定新的分隔符,有些時候可能需求指定多個分隔符,比如下面的內容 root n1 netstat an grep estab udp 0 0 192.168.1.120 35570 212.47.249.141 123 established udp 0 0 192.168.1.1...

有關awk欄位分隔符

echo a b c d awk 我的理解是應該把輸出顯示為如下的方式 a b c d dan但執行的結果不是這樣的 a b c d 為什麼啊 echo a b c d awk 或echo a b c d awk begin 或echo a b c d awk 這個方法我知道 我是想知道為什麼ofs...