簡體   English   中英

Bash,列中數據的大量數據更改,但僅特定行

[英]Bash, mass data change on data from a column but only specific lines

我有一個數據文件,需要對特定行或列進行批量日期更改。 它僅在以 0003-0 結尾的特定行上。 還有許多其他類似的,我不需要更改它們。 我附上一個例子。 在 Due 列下,我需要將日期更改為較新的日期,但僅限於以 -0 結尾的行,我認為我可以為 0003-0 執行此操作,因為它們是相同的。 它需要是一個 bash 腳本。 我試過 awk 和 grep egrep 但收效甚微。

                         User id: CR                        24-FEB-22
                    Active Orders Report                     Page   5


141543B              NS N     14     14 NO 220224 12468064-0003-1               
144461-003B          NS N     16     16 NO 220225 12473061-0003-1               
143092B              NS N      9      9 NO 220225 12472857-0003-1               
153674-002G          NS N     10     10 NO 220225 12477592-0003-1               
150543B              NS N    243    243 NO 220228 12477208-0003-1               
145874D              NS N     96     96 NO 220228 12477238-0003-1               
140725D              NS N    140    140 NO 220228 12476411-0003-1               
------------------------------------------------------------------------------
 Material name: 915028-120-60         Thk:    0.375
 
Part name            ST F OrgQty Qty    PR Due    Order number
-------------------- -- - ------ ------ -- ------ ------------------------------
138540-005H          NS N      3      3 NO 220224 12469166-0003-1               
134305-005H          NS N     17     17 NO 220224 12468143-0003-1               
134305-004H          NS N     17     17 NO 220224 12468699-0003-1               
138540-003H          NS N      1      1 NO 220224 12469164-0003-1               
134305-004H          NS N     17     17 NO 220225 12472767-0003-1               
134305-025H          NS N     18     18 NO 220225 12473151-0003-1               
134305-004H          NS N     17     17 NO 220228 12476502-0003-1               
134305-005H          NS N     17     17 NO 220228 12476974-0003-1               
134305-025H          NS N     10     10 NO 220228 12475684-0003-1               
134305-004H          NS N     17     17 NO 220228 12476418-0003-1               
------------------------------------------------------------------------------
 Material name: 915028-120-48         Thk:    0.375
 
Part name            ST F OrgQty Qty    PR Due    Order number
-------------------- -- - ------ ------ -- ------ ------------------------------
166764-003B          NS N      8      8 NO 220225 12472406-0003-1               
166764-003B          NS N      8      8 NO 220228 12476160-0003-1               
------------------------------------------------------------------------------
 Material name: 915028-119-48         Thk:    0.375
 
Part name            ST F OrgQty Qty    PR Due    Order number
-------------------- -- - ------ ------ -- ------ ------------------------------
134914-001D          NS N     46     46 NO 220101 12478187-0003-0               
134307-005K          NS N     19     19 NO 220101 12470436-0003-0               
134838E              NS N    150    150 NO 220101 12474868-0003-0               
134307-005K          NS N     19     19 NO 220101 12474436-0003-0               
146376C              NS N     24     24 NO 220203 12468515-0003-1

           
$ awk -v d='270503' '$NF ~ /-0$/{$0 = substr($0,1,43) d substr($0,50)} 1' file
                         User id: CR                        24-FEB-22
                    Active Orders Report                     Page   5


141543B              NS N     14     14 NO 220224 12468064-0003-1
144461-003B          NS N     16     16 NO 220225 12473061-0003-1
143092B              NS N      9      9 NO 220225 12472857-0003-1
153674-002G          NS N     10     10 NO 220225 12477592-0003-1
150543B              NS N    243    243 NO 220228 12477208-0003-1
145874D              NS N     96     96 NO 220228 12477238-0003-1
140725D              NS N    140    140 NO 220228 12476411-0003-1
------------------------------------------------------------------------------
 Material name: 915028-120-60         Thk:    0.375

Part name            ST F OrgQty Qty    PR Due    Order number
-------------------- -- - ------ ------ -- ------ ------------------------------
138540-005H          NS N      3      3 NO 220224 12469166-0003-1
134305-005H          NS N     17     17 NO 220224 12468143-0003-1
134305-004H          NS N     17     17 NO 220224 12468699-0003-1
138540-003H          NS N      1      1 NO 220224 12469164-0003-1
134305-004H          NS N     17     17 NO 220225 12472767-0003-1
134305-025H          NS N     18     18 NO 220225 12473151-0003-1
134305-004H          NS N     17     17 NO 220228 12476502-0003-1
134305-005H          NS N     17     17 NO 220228 12476974-0003-1
134305-025H          NS N     10     10 NO 220228 12475684-0003-1
134305-004H          NS N     17     17 NO 220228 12476418-0003-1
------------------------------------------------------------------------------
 Material name: 915028-120-48         Thk:    0.375

Part name            ST F OrgQty Qty    PR Due    Order number
-------------------- -- - ------ ------ -- ------ ------------------------------
166764-003B          NS N      8      8 NO 220225 12472406-0003-1
166764-003B          NS N      8      8 NO 220228 12476160-0003-1
------------------------------------------------------------------------------
 Material name: 915028-119-48         Thk:    0.375

Part name            ST F OrgQty Qty    PR Due    Order number
-------------------- -- - ------ ------ -- ------ ------------------------------
134914-001D          NS N     46     46 NO 270503 12478187-0003-0
134307-005K          NS N     19     19 NO 270503 12470436-0003-0
134838E              NS N    150    150 NO 270503 12474868-0003-0
134307-005K          NS N     19     19 NO 270503 12474436-0003-0
146376C              NS N     24     24 NO 220203 12468515-0003-1

似乎我在詢問錯誤的輸入,因為這是 output 需要更改日期並由另一個程序運行。 我需要做的是在 a.csv 文件中找到末尾有相應 -0 的日期,並將日期更改為今天的日期。 我打算去grep -o找到這個,但我可能只使用 awk 找到第 6 列並將這些列的日期更改為今天的日期。

no, quantity, ordered, date, order no
133346B       36     36 NO 220225 12473014-0003-1               
089122-018M   2      2 NO 220225 12472891-0003-1               
166563A       76     76 NO 220225 12473558-0003-1               
089122-018M   2      2 NO 220228 12476638-0003-1               
091075G       60     60  NO 220228 12477089-0003-1               
133160-MFGA   8      8 NO 220101 12474637-0003-0               
147461-MFGA   39     39 NO 220101 12474816-0003-0               
105176C       66     66 NO 220101 12474805-0003-0               
144076-MFGB   112    112 NO 220101 12474813-0003-0               
137602A       120    120 NO 220101 12474867-0003-0

暫無
暫無

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

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