[英]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
或者,一次執行cut
和tr
:
cut -d '(' -f 2 file | cut -d ')' -f 1 | tr -d ' '
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.