Skip to main content
Command added.
Source Link
Prabhjot Singh
  • 2.4k
  • 1
  • 6
  • 20

Using awk:

$ awk '{ sub(/[_[:alpha:]]{10}=[_[:alpha:]]{12},[_[:alpha:]]{10}=[_[:alpha:]]{3}.*,[_[:alpha:]]{10}=[[:alnum:]]+/, "\"&\"")}1'

# Using GNU awk
$ awk '{sub(/\w{10}=\w{12},\w{10}=\w{3}.*,\w{10}=[[:alnum:]]{1,}/, "\"&\"" ) }1'

Or using GNU awk's gensub() function

$ awk '{print gensub(/(^.*)(\w{10}=\w{12},\w{10}=\w{3}.*,\w{10}=[[:alnum:]]{1,})(.*$)/, "\\1\"\\2\"\\3", "g"); }'

Using awk:

$ awk '{sub(/\w{10}=\w{12},\w{10}=\w{3}.*,\w{10}=[[:alnum:]]{1,}/, "\"&\"" ) }1'

Or using GNU awk's gensub() function

$ awk '{print gensub(/(^.*)(\w{10}=\w{12},\w{10}=\w{3}.*,\w{10}=[[:alnum:]]{1,})(.*$)/, "\\1\"\\2\"\\3", "g"); }'

Using awk:

$ awk '{ sub(/[_[:alpha:]]{10}=[_[:alpha:]]{12},[_[:alpha:]]{10}=[_[:alpha:]]{3}.*,[_[:alpha:]]{10}=[[:alnum:]]+/, "\"&\"")}1'

# Using GNU awk
$ awk '{sub(/\w{10}=\w{12},\w{10}=\w{3}.*,\w{10}=[[:alnum:]]{1,}/, "\"&\"" ) }1'

Or using GNU awk's gensub() function

$ awk '{print gensub(/(^.*)(\w{10}=\w{12},\w{10}=\w{3}.*,\w{10}=[[:alnum:]]{1,})(.*$)/, "\\1\"\\2\"\\3", "g"); }'
Answer Edited
Source Link
Prabhjot Singh
  • 2.4k
  • 1
  • 6
  • 20

Using awk:

$ awk -v q=\" '{if (matchsub($0,/\w{10}=\w{12},\w{10}=\w{3}.*,\w{10}=[[:alnum:]]/)){ print q substr($01,RSTART}/,RLENGTH) q}"\"&\"" ) }'1'

Or using GNU awk's gensub() function:

$ awk -v q=\" '{print a=gensubgensub(/(^.*)(\w{10}=\w{12},\w{10}=\w{3}.*,\w{10}=[[:alnum:]]{1,})(.*$)/, q"\\1"q"\\1\"\\2\"\\3", "g"); if (a != $0) print a}'

To double quotes from col 12 to col 19

$ awk -F, -v q=\" '{ printf "%s", q; for(i=12;i<=19;i++) printf "%s", $i (i==19 ? q ORS : FS)} '

To double quote starting from regex <\w{10}=\w{12}\>/ to regex /<\w{10}=[[:alnum:]]\>/

$ awk -F, -v q=\" '{ for(i=1;i<=NF;i++) {if ($i ~ /\<\w{10}=\w{12}\>/) {a=""; a= $i}else {a  = (a) ? a FS $i : ""}; if ($i ~ /\<\w{10}=[[:alnum:]]\>/ && a) print q a q  }}'

If you want to put double quotes around regex:

$ awk '{sub(/\w{10}=\w{12},\w{10}=\w{3}.*,\w{10}=[[:alnum:]]{1,}/, "\"&\"" ) }1'

$ awk '{print gensub(/(^.*)(\w{10}=\w{12},\w{10}=\w{3}.*,\w{10}=[[:alnum:]]{1,})(.*$)/, "\\1\"\\2\"\\3", "g"); }'

Using awk:

$ awk -v q=\" '{if (match($0,/\w{10}=\w{12},\w{10}=\w{3}.*,\w{10}=[[:alnum:]]/)){ print q substr($0,RSTART,RLENGTH) q} }'

Or using GNU awk's gensub() function:

$ awk -v q=\" '{ a=gensub(/^.*(\w{10}=\w{12},\w{10}=\w{3}.*,\w{10}=[[:alnum:]]{1,}).*$/, q"\\1"q, "g"); if (a != $0) print a}'

To double quotes from col 12 to col 19

$ awk -F, -v q=\" '{ printf "%s", q; for(i=12;i<=19;i++) printf "%s", $i (i==19 ? q ORS : FS)} '

To double quote starting from regex <\w{10}=\w{12}\>/ to regex /<\w{10}=[[:alnum:]]\>/

$ awk -F, -v q=\" '{ for(i=1;i<=NF;i++) {if ($i ~ /\<\w{10}=\w{12}\>/) {a=""; a= $i}else {a  = (a) ? a FS $i : ""}; if ($i ~ /\<\w{10}=[[:alnum:]]\>/ && a) print q a q  }}'

If you want to put double quotes around regex:

$ awk '{sub(/\w{10}=\w{12},\w{10}=\w{3}.*,\w{10}=[[:alnum:]]{1,}/, "\"&\"" ) }1'

$ awk '{print gensub(/(^.*)(\w{10}=\w{12},\w{10}=\w{3}.*,\w{10}=[[:alnum:]]{1,})(.*$)/, "\\1\"\\2\"\\3", "g"); }'

Using awk:

$ awk '{sub(/\w{10}=\w{12},\w{10}=\w{3}.*,\w{10}=[[:alnum:]]{1,}/, "\"&\"" ) }1'

Or using GNU awk's gensub() function

$ awk '{print gensub(/(^.*)(\w{10}=\w{12},\w{10}=\w{3}.*,\w{10}=[[:alnum:]]{1,})(.*$)/, "\\1\"\\2\"\\3", "g"); }'
Command added.
Source Link
Prabhjot Singh
  • 2.4k
  • 1
  • 6
  • 20

Using awk:

$ awk -v q=\" '{if (match($0,/\w{10}=\w{12},\w{10}=\w{3}.*,\w{10}=[[:alnum:]]/)){ print q substr($0,RSTART,RLENGTH) q} }'

Or using GNU awk's gensub() function:

$ awk -v q=\" '{ a=gensub(/^.*(\w{10}=\w{12},\w{10}=\w{3}.*,\w{10}=[[:alnum:]]{1,}).*$/, q"\\1"q, "g"); if (a != $0) print a}'

To double quotes from col 12 to col 19

$ awk -F, -v q=\" '{ printf "%s", q; for(i=12;i<=19;i++) printf "%s", $i (i==19 ? q ORS : FS)} '

To double quote starting from regex <\w{10}=\w{12}\>/ to regex /<\w{10}=[[:alnum:]]\>/

$ awk -F, -v q=\" '{ for(i=1;i<=NF;i++) {if ($i ~ /\<\w{10}=\w{12}\>/) {a=""; a= $i}else {a  = (a) ? a FS $i : ""}; if ($i ~ /\<\w{10}=[[:alnum:]]\>/ && a) print q a q  }}'

If you want to put double quotes around regex:

$ awk -v q=\" '{sub(/\w{10}=\w{12},\w{10}=\w{3}.*,\w{10}=[[:alnum:]]{1,}/, q"\"&\"" "&") q}1'

$ awk '{print gensub(/(^.*)(\w{10}=\w{12},\w{10}=\w{3}.*,\w{10}=[[:alnum:]]{1,})(.*$)/, "\\1\"\\2\"\\3", "g"); }1''

Using awk:

$ awk -v q=\" '{if (match($0,/\w{10}=\w{12},\w{10}=\w{3}.*,\w{10}=[[:alnum:]]/)){ print q substr($0,RSTART,RLENGTH) q} }'

Or using GNU awk's gensub() function:

$ awk -v q=\" '{ a=gensub(/^.*(\w{10}=\w{12},\w{10}=\w{3}.*,\w{10}=[[:alnum:]]{1,}).*$/, q"\\1"q, "g"); if (a != $0) print a}'

To double quotes from col 12 to col 19

$ awk -F, -v q=\" '{ printf "%s", q; for(i=12;i<=19;i++) printf "%s", $i (i==19 ? q ORS : FS)} '

To double quote starting from regex <\w{10}=\w{12}\>/ to regex /<\w{10}=[[:alnum:]]\>/

$ awk -F, -v q=\" '{ for(i=1;i<=NF;i++) {if ($i ~ /\<\w{10}=\w{12}\>/) {a=""; a= $i}else {a  = (a) ? a FS $i : ""}; if ($i ~ /\<\w{10}=[[:alnum:]]\>/) print q a q  }}'

If you want to put double quotes around regex:

$ awk -v q=\" '{sub(/\w{10}=\w{12},\w{10}=\w{3}.*,\w{10}=[[:alnum:]]{1,}/, q "&" q ) }1'

Using awk:

$ awk -v q=\" '{if (match($0,/\w{10}=\w{12},\w{10}=\w{3}.*,\w{10}=[[:alnum:]]/)){ print q substr($0,RSTART,RLENGTH) q} }'

Or using GNU awk's gensub() function:

$ awk -v q=\" '{ a=gensub(/^.*(\w{10}=\w{12},\w{10}=\w{3}.*,\w{10}=[[:alnum:]]{1,}).*$/, q"\\1"q, "g"); if (a != $0) print a}'

To double quotes from col 12 to col 19

$ awk -F, -v q=\" '{ printf "%s", q; for(i=12;i<=19;i++) printf "%s", $i (i==19 ? q ORS : FS)} '

To double quote starting from regex <\w{10}=\w{12}\>/ to regex /<\w{10}=[[:alnum:]]\>/

$ awk -F, -v q=\" '{ for(i=1;i<=NF;i++) {if ($i ~ /\<\w{10}=\w{12}\>/) {a=""; a= $i}else {a  = (a) ? a FS $i : ""}; if ($i ~ /\<\w{10}=[[:alnum:]]\>/ && a) print q a q  }}'

If you want to put double quotes around regex:

$ awk '{sub(/\w{10}=\w{12},\w{10}=\w{3}.*,\w{10}=[[:alnum:]]{1,}/, "\"&\"" ) }1'

$ awk '{print gensub(/(^.*)(\w{10}=\w{12},\w{10}=\w{3}.*,\w{10}=[[:alnum:]]{1,})(.*$)/, "\\1\"\\2\"\\3", "g"); }'
Command added.
Source Link
Prabhjot Singh
  • 2.4k
  • 1
  • 6
  • 20
Loading
Command corrected.
Source Link
Prabhjot Singh
  • 2.4k
  • 1
  • 6
  • 20
Loading
Command added.
Source Link
Prabhjot Singh
  • 2.4k
  • 1
  • 6
  • 20
Loading
edited body
Source Link
Prabhjot Singh
  • 2.4k
  • 1
  • 6
  • 20
Loading
Source Link
Prabhjot Singh
  • 2.4k
  • 1
  • 6
  • 20
Loading