Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何用字母或结束字符分隔使用awk的字段_Linux_Bash_Perl_Awk_Grep - Fatal编程技术网

Linux 如何用字母或结束字符分隔使用awk的字段

Linux 如何用字母或结束字符分隔使用awk的字段,linux,bash,perl,awk,grep,Linux,Bash,Perl,Awk,Grep,我的数据库中有两个字段 ID25333,1429291340lNormPUC-AP_MEX_UFM-GOL_44PUC-AP_VEX_UFM-ROL_55PUCAP_MEX_UFM-DOJ_49 ID55555,1429291340lNormPUC-AP_PPP_UFM-HOL_44PUC-AF_GEX_UJM-SOL_45PUCAP_MEX_UFM-DOJ_59 我需要像这样分开 ID25333,PUC-AP_MEX_UFM-GOL_44 ID25333,PUC-AP_VEX_UF

我的数据库中有两个字段

ID25333,1429291340lNormPUC-AP_MEX_UFM-GOL_44PUC-AP_VEX_UFM-ROL_55PUCAP_MEX_UFM-DOJ_49
ID55555,1429291340lNormPUC-AP_PPP_UFM-HOL_44PUC-AF_GEX_UJM-SOL_45PUCAP_MEX_UFM-DOJ_59
我需要像这样分开

ID25333,PUC-AP_MEX_UFM-GOL_44     
ID25333,PUC-AP_VEX_UFM-ROL_55
ID25333,PUCAP_MEX_UFM-DOJ_49
ID55555,PUC-AP_PPP_UFM-HOL_44
ID55555,PUC-AF_GEX_UJM-SOL_45
ID55555,PUCAP_MEX_UFM-DOJ_59
用相同的身份证

我正在使用AWK或grep

awk 'BEGIN{FS="PUC"}{for(i=1;i<=NF;i++)print $(i)}'
awk'BEGIN{FS=“PUC”}{(i=1;i与GNU awk:

$ awk -F, '{gsub(/PUC/, ","); for (i=3;i<=NF;i++)print $1",PUC"$i}' file.db
ID25333,PUC-AP_MEX_UFM-GOL_44
ID25333,PUC-AP_VEX_UFM-ROL_55
ID25333,PUCAP_MEX_UFM-DOJ_49
ID55555,PUC-AP_PPP_UFM-HOL_44
ID55555,PUC-AF_GEX_UJM-SOL_45
ID55555,PUCAP_MEX_UFM-DOJ_59

$awk-F,'{gsub(/PUC/,“,”);for(i=3;i如果您喜欢
awk

awk -F, ' -v OFS=','
{
  id=$1
  split($2,line,"PUC")
  for(i=2;i<=length(line);i++)
    print id,"PUC" line[i]
}'
awk-F'-v of s=''
{
id=$1
拆分($2,行,“临市局”)

对于(i=2;i和GNU awk,用于固定宽度字段:

$ awk -v FIELDWIDTHS="8 15 21 21 21" '{for (i=3;i<=NF;i++) print $1 $i}' file
ID25333,PUC-AP_MEX_UFM-GOL_44
ID25333,PUC-AP_VEX_UFM-ROL_55
ID25333,PUCAP_MEX_UFM-DOJ_49
ID55555,PUC-AP_PPP_UFM-HOL_44
ID55555,PUC-AF_GEX_UJM-SOL_45
ID55555,PUCAP_MEX_UFM-DOJ_59

$awk-vfieldwidths=“8 15 21”{for(i=3;如果这些解决方案中没有任何特定的gawk。
$ awk -v FIELDWIDTHS="8 15 21 21 21" '{for (i=3;i<=NF;i++) print $1 $i}' file
ID25333,PUC-AP_MEX_UFM-GOL_44
ID25333,PUC-AP_VEX_UFM-ROL_55
ID25333,PUCAP_MEX_UFM-DOJ_49
ID55555,PUC-AP_PPP_UFM-HOL_44
ID55555,PUC-AF_GEX_UJM-SOL_45
ID55555,PUCAP_MEX_UFM-DOJ_59