AWK學習(二) 分隔符

2021-09-28 14:00:02 字數 1668 閱讀 9704

awk學習系列

awk學習(一) 基礎

awk學習(二) 分隔符

輸入分隔符(field separator):預設是空白字元(空格)為分隔符對每一行進行分割

輸出分隔符(output field separator):將每行分割後,輸出在螢幕上也是以空格為字元分隔符

我們通過小例子搞明白這兩個分隔符的作用

當awk逐行處理文字的時候,是以輸入分隔符為準,將文字切成多個片段,預設使用空格,但是如果一段文字中沒有空格,我們可以指定特定的文字或符號作為輸入分隔符,

如下圖我們指定#為輸入分隔符

[root@localhost ~]

# cat test

abc#123#iuy#ddd

8ua#456#auv###ppp#7y7

[root@localhost ~]

# awk -f# '' test

abc 123

8ua 456

[root@localhost ~]

#

上圖中,我們使用了-f選項,指定使用#作為輸入分隔符,於是awk將每一行都通過#來分割

awk的語法如下:

awk [option] 『pattern 』 file

此處我們使用了awk的乙個option,就是-f 作用就是用於指定輸入分隔符

還可以通過設定內建變數指定awk的輸入分隔符

awk 內建變數fs可以用於指定輸入分隔符,但是在使用變數時,需要使用-v選項, 用於指定對應的變數 ,如 -v fs =』#』

[root@localhost ~]

# cat test

abc#123#iuy#ddd

8ua#456#auv###ppp#7y7

[root@localhost ~]

# awk -f# '' test

abc 123

8ua 456

[root@localhost ~]

# cat test

abc#123#iuy#ddd

8ua#456#auv###ppp#7y7

[root@localhost ~]

# awk -v fs='#' '' test

abc 123

8ua 456

[root@localhost ~]

#

-v 也是option的一種,用於設定內建變數

那麼什麼是輸出分隔符呢,當我們要對處理完的文字進行輸出的時候,以什麼文字或符號作為分隔符,預設是空格

現在我們可以同時指定輸入分隔符和輸出分隔符,示例如下:

現在我們可以同時指定輸入分隔符和輸出分隔符,示例如下:

awk 『』 表示 每行分割後,將第一列和第二列以輸出分隔符空格輸出

awk 『』 表示每行分割後,將第一列和第二列連線起來輸出

二,awk分隔符

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

Linux 三劍客之awk(二)分隔符

awk的預設分割符是空格,其實awk的分隔符還分為兩種,輸入分隔符 和 輸出分隔符 輸入分隔符,英文原文為field separator,此處簡稱為fs 輸入分割符,預設是空白字元 即空格 awk預設以空白字元為分隔符對每一行進行分割。輸出分割符,英文原文為output field separato...

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...