AWK SED操作文本以将其排序为CSV

AWK SED操作文本以将其排序为CSV,csv,text,awk,sed,Csv,Text,Awk,Sed,我有这个输入文件 SHARED FOLDER: \\SERVERC1\"uh4" Share name \\SERVERC1\uh4 Path C:\vol\CN_FS4\CN_QT01\FILESERVER43\userhome Remark Maximum users No limit Users 0 Permissions: WINDOM\NASCIFSMIG01: FULL CONTRO

我有这个输入文件

SHARED FOLDER: \\SERVERC1\"uh4" 

Share name        \\SERVERC1\uh4
Path              C:\vol\CN_FS4\CN_QT01\FILESERVER43\userhome
Remark            
Maximum users     No limit
Users             0
Permissions:
WINDOM\NASCIFSMIG01:  FULL CONTROL
WINDOM\ADMINDA14b  :  FULL CONTROL
WINDOM\ADMINDA16   :  FULL CONTROL
The command completed successfully.
============================================================================================================  
SHARED FOLDER: \\SERVERC1\"uh5" 

Share name        \\SERVERC1\uh5
Path              C:\vol\CN_FS2\CN_QT01\FILESERVER01\userhome
Remark            
Maximum users     No limit
Users             0
Permissions:
WINDOM\NASCIFSMIG01:  FULL CONTROL
WINDOM\ADMINDA14b  :  FULL CONTROL
WINDOM\ADMINDA20   :  FULL CONTROL
The command completed successfully.
============================================================================================================  
我需要这个输出:

\\SERVERC1\uh4;C:\vol\CN_FS4\CN_QT01\FILESERVER43\userhome;WINDOM\NASCIFSMIG01:  FULL CONTROL;WINDOM\ADMINDA14b  :  FULL CONTROL;WINDOM\ADMINDA16   :  FULL CONTROL
\\SERVERC1\uh5;C:\vol\CN_FS2\CN_QT01\FILESERVER01\userhome;WINDOM\NASCIFSMIG01:  FULL CONTROL;WINDOM\ADMINDA14b  :  FULL CONTROL;WINDOM\ADMINDA20   :  FULL CONTROL
你有什么建议吗? 我不知道怎么做。我试着做: sed-n“/Permissions:/,/command completed successfully/p”仅获取权限,但不起作用

sed -nE 's/^Share name *(\\\\.*)/\1;/p;s/^Path *(.*)$/\1;/p;s/^WINDOM.*/&;/p' input.txt | tr -d "\n" | sed 's/;\\\\/;\n\\\\/g' | sed 's/;$//'
输出:

\\SERVERC1\uh4;C:\vol\CN_FS4\CN_QT01\FILESERVER43\userhome;WINDOM\NASCIFSMIG01: FULL CONTROL;WINDOM\ADMINDA14b : FULL CONTROL;WINDOM\ADMINDA16 : FULL CONTROL \\SERVERC1\uh5;C:\vol\CN_FS2\CN_QT01\FILESERVER01\userhome;WINDOM\NASCIFSMIG01: FULL CONTROL;WINDOM\ADMINDA14b : FULL CONTROL;WINDOM\ADMINDA20 : FULL CONTROL \\服务器c1\uh4;C:\vol\CN\u FS4\CN\u QT01\FILESERVER43\userhome;WINDOM\NASCIFSMIG01:完全控制;WINDOM\ADMINDA14b:完全控制;WINDOM\ADMINDA16:完全控制 \\服务器c1\uh5;C:\vol\CN\u FS2\CN\u QT01\FILESERVER01\userhome;WINDOM\NASCIFSMIG01:完全控制;WINDOM\ADMINDA14b:完全控制;WINDOM\ADMINDA20:完全控制 输出:

\\SERVERC1\uh4;C:\vol\CN_FS4\CN_QT01\FILESERVER43\userhome;WINDOM\NASCIFSMIG01: FULL CONTROL;WINDOM\ADMINDA14b : FULL CONTROL;WINDOM\ADMINDA16 : FULL CONTROL \\SERVERC1\uh5;C:\vol\CN_FS2\CN_QT01\FILESERVER01\userhome;WINDOM\NASCIFSMIG01: FULL CONTROL;WINDOM\ADMINDA14b : FULL CONTROL;WINDOM\ADMINDA20 : FULL CONTROL \\服务器c1\uh4;C:\vol\CN\u FS4\CN\u QT01\FILESERVER43\userhome;WINDOM\NASCIFSMIG01:完全控制;WINDOM\ADMINDA14b:完全控制;WINDOM\ADMINDA16:完全控制 \\服务器c1\uh5;C:\vol\CN\u FS2\CN\u QT01\FILESERVER01\userhome;WINDOM\NASCIFSMIG01:完全控制;WINDOM\ADMINDA14b:完全控制;WINDOM\ADMINDA20:完全控制
通过grep和paste

$ grep -oP '^(Share name|Path)\s+\K.*|^WINDOM\\.*' file | paste -d';' - - - - -
\\SERVERC1\uh4;C:\vol\CN_FS4\CN_QT01\FILESERVER43\userhome;WINDOM\NASCIFSMIG01:  FULL CONTROL;WINDOM\ADMINDA14b  :  FULL CONTROL;WINDOM\ADMINDA16   :  FULL CONTROL
\\SERVERC1\uh5;C:\vol\CN_FS2\CN_QT01\FILESERVER01\userhome;WINDOM\NASCIFSMIG01:  FULL CONTROL;WINDOM\ADMINDA14b  :  FULL CONTROL;WINDOM\ADMINDA20   :  FULL CONTROL

通过grep和paste

$ grep -oP '^(Share name|Path)\s+\K.*|^WINDOM\\.*' file | paste -d';' - - - - -
\\SERVERC1\uh4;C:\vol\CN_FS4\CN_QT01\FILESERVER43\userhome;WINDOM\NASCIFSMIG01:  FULL CONTROL;WINDOM\ADMINDA14b  :  FULL CONTROL;WINDOM\ADMINDA16   :  FULL CONTROL
\\SERVERC1\uh5;C:\vol\CN_FS2\CN_QT01\FILESERVER01\userhome;WINDOM\NASCIFSMIG01:  FULL CONTROL;WINDOM\ADMINDA14b  :  FULL CONTROL;WINDOM\ADMINDA20   :  FULL CONTROL

这是一个
awk
版本,所有这些都在一个命令中完成

awk '{i++} i==3 {d=$3} i==4 {d=d";"$2} i>8 && i<12 {d=d";"$0} /===/{print d;i=d=""}' file

缩短一些:

awk '++i==3{d=$3} i==4{d=d";"$2} i>8&&i<12{d=d";"$0} /===/{print d;i=d=""}' file

awk'++i==3{d=$3}i==4{d=d”;“$2}i>8&&i这是一个
awk
版本,所有这些都在一个命令中完成

awk '{i++} i==3 {d=$3} i==4 {d=d";"$2} i>8 && i<12 {d=d";"$0} /===/{print d;i=d=""}' file

缩短一些:

awk '++i==3{d=$3} i==4{d=d";"$2} i>8&&i<12{d=d";"$0} /===/{print d;i=d=""}' file
awk'++i==3{d=$3}i==4{d=d”;“$2}i>8&&i