簡體   English   中英

使用 awk 將帶空格的第一列視為一列

[英]Treat first column with spaces as one column using awk

我有想要提取的數據。 但是,我在第一列遇到問題,因為某些數據中有空間,這使我很難使用 awk 解析它

6_MB06 SA003              1550        None                                          uats           admin     1270           1478640      1211360         none    2957656064          no                               0                   no                                                                                                                            60021AA29H38028200000000000521D3   no         no               0                                  no              yes            no                      no                supported       no        no                                18                              2.60                      193                       no            0        Active optimized   0000         Not Available   
6_VLS01 G                 516         None                                          uats           admin     0              492880       176             none    1008291840          no                               0                   no                                                                                                                            60021AA29H38028200000000000521D4   no         no               0                                  no              yes            no                      no                supported       no        no                                99                              2.20                      0                         no            0        Active optimized   0000         Not Available   
6_VLS01 R                 1550        None                                          uats           admin     1361           1478640      1297994         none    2957656064          no                               0                   no                                                                                                                            60021AA29H38028200000000000521D5   no         no               0                                  no              yes            no                      no                supported       no        no                                12                              3.58                      375                       no            0        Active optimized   0000         Not Available   
irexenvdi_np_cl1_2_001    10956       None                                          ire_ct2_pool   admin     8689           10449056     8286854         none    21396484375         no                               0                   no                                                                                                                            60021AA29H38028200000000000521D6   no         no               0                                  no              yes            no                      no                supported       no        no                                20                              1.38                      1050                      no            0        Active optimized   0000         Not Available   
irexenvdi_np_cl1_2_002    10956       None                                          ire_ct2_pool   admin     8696           10449056     8293878         none    21396484375         no                               0                   no                                                                                                                            60021AA29H38028200000000000521D7   no         no               0                                  no              yes            no                      no                supported       no        no                                20                              1.36                      1132                      no            0        Active optimized   0000         Not Available   
4_MA04-SA025              1550        None                                          uats           admin     1270           1478640      1211856         none    2957656064          no                               0                   no                                                                                                                            60021AA29H38028200000000000630EC   no         no               0                                  no              yes            no                      no                supported       no        no                                18                              1.92                      316                       no            0        Active optimized   0000         Not Available   
4_G VLS01                 516         None                                          uats           admin     7              492880       7264            none    1008291840          no                               0                   no                                                                                                                            60021AA29H38028200000000000630ED   no         no               0                                  no              yes            no                      no                supported       no        no                                98                              1.26                      0                         no            0        Active optimized   0000         Not Available   
4_R VLS01                 1550        None                                          uats           admin     1278           1478640      1218864         none    2957656064          no                               0                   no                                                                                                                            60021AA29H38028200000000000630EE   no         no               0                                  no              yes            no                      no                supported       no        no                                17                              2.19                      423                       no            0        Active optimized   0000         Not Available   

嘗試了我在另一個腳本中使用的這個命令,因為 output 有點相似,但它沒有按預期工作。

cat file | awk 'match($0, /[[:alnum:]]{32}/){ print $1, $2, substr($0, RSTART, RLENGTH)}' |column -t

運行產生這個:

6_MB06                  SA003  60021AA29H38028200000000000521D3
6_VLS01                 G      60021AA29H38028200000000000521D4
6_VLS01                 R      60021AA29H38028200000000000521D5
irexenvdi_np_cl1_2_001  10956  60021AA29H38028200000000000521D6
irexenvdi_np_cl1_2_002  10956  60021AA29H38028200000000000521D7
4_MA04-SA025            1550   60021AA29H38028200000000000630EC
4_G                     VLS01  60021AA29H38028200000000000630ED
4_R                     VLS01  60021AA29H38028200000000000630EE

但想要這個:

6_MB06 SA003              1550      60021AA29H38028200000000000521D3
6_VLS01 G                 516       60021AA29H38028200000000000521D4
6_VLS01 R                 1550      60021AA29H38028200000000000521D5
irexenvdi_np_cl1_2_001    10956     60021AA29H38028200000000000521D6
irexenvdi_np_cl1_2_002    10956     60021AA29H38028200000000000521D7
4_MA04-SA025              1550      60021AA29H38028200000000000630EC
4_G VLS01                 516       60021AA29H38028200000000000630ED
4_R VLS01                 1550      60021AA29H38028200000000000630EE

如果你的第一個單詞最多有一個空格,你可以試試

awk 'NF == 35 { print $1"@"$2, $3, $15} NF == 34 { print $1, $2, $14 }' file | column -t | sed 's/@/ /'

這會將第一個單詞包含空格的行識別為具有額外列(awk 用語中的字段),將空格打印為@符號,然后使用column -t格式化,然后使用sed@替換為空格。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM