使用awk處理帶標籤文字

2021-12-29 22:41:42 字數 1613 閱讀 1905

使用awk處理帶標籤文字

假設有"123abc456def789ghi"這麼乙個字串

題中的字串,要擷取長度5,則返回的字串應該為:123ab,要擷取長度8,應返回123abc45。

附:1 和標記不得計算在長度之內。

2 擷取後的字串,要保留原有標籤,不過如果最後有乙個標籤沒有閉合,則去掉其開始標籤。

**:如下

#!/bin/bash

a='123abc456def789ghi'

echo "test text is '$a'"

read -p "please input a number little than `echo $a|awk ''`: " num

echo $a | awk -vnum="$num" -vfs='' 'else}print strlist}'

測試結果:

[root@localhost ~]# bash 1.sh 

test text is '123abc456def789ghi'

please input a number little than 18: 2

12[root@localhost ~]# bash 1.sh 

test text is '123abc456def789ghi'

please input a number little than 18: 5

123ab

[root@localhost ~]# bash 1.sh 

test text is '123abc456def789ghi'

please input a number little than 18: 7

123abc4

[root@localhost ~]# bash 1.sh 

test text is '123abc456def789ghi'

please input a number little than 18: 10

123abc456d

[root@localhost ~]# bash 1.sh 

test text is '123abc456def789ghi'

please input a number little than 18: 9

123abc456

[root@localhost ~]# bash 1.sh 

test text is '123abc456def789ghi'

please input a number little than 18: 14

123abc456def78

[root@localhost ~]# bash 1.sh 

test text is '123abc456def789ghi'

please input a number little than 18: 17

123abc456def789gh

[root@localhost ~]# bash 1.sh 

test text is '123abc456def789ghi'

please input a number little than 18: 18

123abc456def789ghi

[root@localhost ~]#

使用awk處理文字

在liux下我們經常需要對一些文字文件做一些處理,尤其像從日誌裡提取一些資料,這是我們一般會用awk工具和sed工具去實現需求,這裡對awk的入門使用簡單記錄。awk可以看作一種文字處理工具,一種專注資料操作的程式語言,乙個資料處理引擎。其名字 於三個發明者的姓名首字母。一般在liux下使用的awk...

awk筆記 使用awk進行文字處理

在linux下開發,因為經常需要分析專案的日誌檔案,以此來查詢軟體功能可能的異常點,經同事的介紹慢慢接觸了linux下的三大利器 grep,sed,awk,特通過以下例子來總結下自己的學習結果 從文字檔案內篩選出起始點座標和結束點座標,並將此結果資料構造sql語句,最後使用sql將資料插入到對應表中...

文字處理awk

awk是乙個強大的文字分析工具,相對於grep的查詢,sed的編輯,awk在其對資料分析並生成報告時,顯得尤為強大。簡單來說awk就是把檔案逐行的讀入,以空格為預設分隔符將每行切片,切開的部分再進行各種分析處理。實際上awk確實有自己的程式語言 樣式掃瞄和處理語言。awk 1.命令列方式 awk f...