簡體   English   中英

使用gawk / awk提取模式數據

[英]extract pattern data using gawk/awk

我有如下輸入文本:

  10779: (255,255, 0,255) #FFFF00 yellow 338: (255,238,125,255) #FFEE00 srgba(255,238,125,1) 180: (238,221, 0,255) #EEDD00 srgba(238,221,0,1) .... 

我希望輸出是

  255,255,0,255 255,238,125,255 238,211,0,255 

如何使用gawk / awk從輸入中提取此數據? 我已經試過了:

gawk 'BEGIN {FS=\"[:,()]\"};{print $3,$4,$5,$6}'

但這給了我數據之間的空間,例如255 255 0 255

根據您的輸入,我猜想這可能有效

awk -F'[()]' '{gsub(/ /,"",$2); print $2}' file
255,255,0,255
255,238,125,255
238,221,0,255

使用perl:

perl -lne 'print $1 if(/\((.*?)\)/)'

如果您不希望這些空格,那么:

perl -lne '$a=$1 if(/\((.*?)\)/);$a=~s/ //g;print $a'

AWK:

awk '{a=index($0,"(");b=index($0,")");a++;b--;print substr($0,a,b-a)}'

經測試

awk另一種方式:

$ awk -F'[(#]' 'gsub(/[ )]/,"")&&$0=$2' file
255,255,0,255
255,238,125,255
238,221,0,255

sed解決方案,適用於各種:

sed -E 's/^.+\(([^)]+)\).+$/\1/; s/ //g' file

或者,一次執行cuttr

cut -d '(' -f 2 file | cut -d ')' -f 1 | tr -d ' '

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM