嗨大家我有以下數據。忽略空格後特定列號
61684 376 23 106 38695633 1 0 0 -1 /C/Program Files (x86)/ 16704 root;[email protected]:SERVICE root;[email protected]:SERVICE 0 1407331175 1407331175 1247541608
8634 416 13 86 574126 1 0 0 -1 /E/KYCImages/ 16832 root;[email protected] root;[email protected] 0 1406018846 1406018846 1352415392
60971 472 22 86 38613076 1 0 0 -1 /E/KYCwebsvc binaries/ 16832 root;[email protected] root;[email protected] 0 1390829495 1390829495 1353370744
1 416 10 86 1 1 0 0 -1 /E/KycApp/ 16832 root;[email protected] root;[email protected] 0 1411465772 1411465772 1351291187
現在,我使用下面的代碼:
awk 'BEGIN{FPAT = "([^ ]+)|(\"[^\"]+\")"}{print $10}' | awk '$1!~/^\/\./' | sort -u | sed -e 's/\,//g' | perl -p00e 's/\n(?!\Z)/;/g' filename
我得到這個輸出
/C/Program;/E/KycApp/;/E/KYCImages/;/E/KycServices/;/E/KYCwebsvc
不過,我需要開始從$ 10的輸出,直到 「/」 再次遇到,基本上我想忽略列10中的任何空格,直到遇到「/」。 這可能嗎?
所需的輸出是
/C/Program Files (x86)/;/E/KycApp/;/E/KYCImages/;/E/KycServices/;/E/KYCwebsvc binaries/
如果你有'-o'選項的'grep',看起來像這就是你想要的......'grep -o'/[^.].*/'filename | sort -u |粘貼-sd';''...你的示例數據應該包含行以顯示爲什麼你需要'awk'$ 1!〜/^\/\./''或'sed -e's/\,// g' ' – Sundeep
paste -sd';'在AIX中不起作用,所以我用perl -p00e的/ \ n(?!\ Z)/;/g'我需要awk'$ 1!〜/^\/\./'來忽略任何具有「/ 「開頭後面跟着」。「另外grep -o在AIX中不起作用。所以需要別的東西。 – Sid
單命令'perl -lne'($ p)= /(\/[^。]。*//)/; $ H {$ P} = 1; END {print join「;」,keys%h}'filename' then? – Sundeep