2016-12-19 4 views
2

У меня есть два столбца, разделенных запятой ниже:Частичное совпадение случай

"01962424813","KSDP01" 
"KSDP01","01962424813" 
"8801962424813","KSDP01" 
01962424813,KSDP01 
1962424813,KSDP01 
8801962424813,KSDP01 
KSDP01,01962424813 
KSDP01,1962424813 
KSDP01,8801962424813 
"1962424813","KSDP01" 
"KSDP01","1962424813" 
"KSDP01","8801962424813" 
01959969994,ASDP11 
"8801962424183","ASDP01" 
"801962424183","KSDP11" 
"01962424183","CSDP10" 
"1962424183","ASDP09" 
8801962424183,CSDP13 
801962424183,KSDP08 
01962424183,ASDP07 
1962424183,CSDP05 
"ASDP01","8801962424183", 
"KSDP11","801962424183", 
"CSDP10","01962424183" 
"ASDP09","1962424183" 
CSDP13,8801962424183 
KSDP08,801962424183 
ASDP07,01962424183 
CSDP05,1962424183 
01912401927,CSDP06 

Всякий раз, когда я нахожу подстроку 19 в первой колонке я хочу поменять местами два значения. Как я могу это сделать? Вот что я пытался:

awk -F, 'BEGIN{OFS=","}{$1=$1;if(awk '$1 ~ /19/'){print $2,$1}else{print $1,$2}}' 
+0

Что попытка вы сделали – Inian

+0

AWK -F, «BEGIN {OFS = ""} {$ 1 = $ 1, если (AWK '$ 1 ~/19 /') {печать $ 2, $ 1} else {print $ 1, $ 2}} ' –

+0

Какой смысл в $ 1 = $ 1? – twalberg

ответ

1
awk -v FS="," -v OFS="," '($1 ~ /19/){temp=$1;$1=$2;$2=temp}1' filename 

должны это сделать. Ниже приведен пример вывода

"KSDP01","01962424813" 
"KSDP01","01962424813" 
"KSDP01","8801962424813" 
KSDP01,01962424813 
KSDP01,1962424813 
KSDP01,8801962424813 
KSDP01,01962424813 
KSDP01,1962424813 
KSDP01,8801962424813 
"KSDP01","1962424813" 
"KSDP01","1962424813" 
"KSDP01","8801962424813" 
ASDP11,01959969994 
"ASDP01","8801962424183" 
"KSDP11","801962424183" 
"CSDP10","01962424183" 
"ASDP09","1962424183" 
CSDP13,8801962424183 
KSDP08,801962424183 
ASDP07,01962424183 
CSDP05,1962424183 
"ASDP01","8801962424183", 
"KSDP11","801962424183", 
"CSDP10","01962424183" 
"ASDP09","1962424183" 
CSDP13,8801962424183 
KSDP08,801962424183 
ASDP07,01962424183 
CSDP05,1962424183 
CSDP06,01912401927 
+0

awk -v FS = "," -v OFS = "," '($ 1 ~/19 /) {temp = $ 1; $ 1 = $ 2; $ 2 = temp} 1' xyz.txt awk: ошибка синтаксиса около строки 1 awk: спасение рядом с линией 1 получение ошибки вроде этого »( –

+0

@KaziNymulHaqueKanon: Вы на солнечной стороне? – sjsam

+0

Да. Я нахожусь на SunOS. –

Смежные вопросы