2017-06-06 99 views
0

我在文件中有以下行。請注意,我有意將第二行中的額外哈希值保持在2和0之間。 文件名:test.txt的Unix Shell腳本 - AWK分隔符問題

Name#|#Age#|#Dept 
AC#|#2#0#|#Science 
BC#|#22#|#Commerce 

我使用awk來獲得系列中的數據

awk -F "#|#" -v c="Dept" 'NR==1{for (i=1; i<=NF; i++) if ($i==c){p=i; break}; next} {print $p}' "test.txt" >> result.txt 

的的Result.txt顯示我下面

| 
Commerce 

第一行作爲管道來,因爲如果在第一行額外的#。 任何人都可以在此幫助

+2

也許嘗試'的awk -F「#[|]# 「'... –

+1

[管道符號|在AWK字段分隔符中](https://stackoverflow.com/questions/34801373/pipe-symbol-in-awk-field-delimiter) –

+0

'awk -F'#\ |#''也可以。 – karakfa

回答

0

目前分隔符集的含義是:match # or #。在這種情況下,管道|字符充當OR聲明;而不是嘗試使用:

awk -F '#[|]#' ... 

|爲角色類[ ... ]awk將逐字匹配。

0

如果你希望在你的內容提取部,這裏是你可以選擇一個不錯的選擇,

awk -F'#' 'NR>1{print $NF}' test.txt 

輸出:

Science 
Commerce