2016-03-15 59 views
-3
. 

          THE EAST INDIA COMPANY PVT LTD         
          THE EAST INDIA COMPANY PVT LTD         

      Date : 14/03/2016   Time : 12:45:15   Page :  1 

Office : INDIANA. Code : 101  Description : TSHIRTS        Month : 03/2016 
Office : INDIANA. Code : 101  Description : TSHIRTS       Month : 03/2016 

+=====================================================================================================+ 
! Slno ! CrId ! Name Of Customer   ! Item Code & Descrptn  !  Amount !    ! 
    Slno CrId  Name Of Customer   Item Code & Descrptn    Amount     ! 
+=====================================================================================================+ 
! 2 ! 234567 ! CHARLES DICKENS   ! 101 / TSHIRTS  ! 65,805.00 !    ! 
! 3 ! 345678 ! ROOSEVOLT HUGAS   ! 101 / TSHIRTS  ! 50,140.00 !    ! 
! 4 ! 456789 ! RICH HILLSIDE   ! 101 / TSHIRTS  ! 48,130.00 !    ! 
! 5 ! 567890 ! SAMUEL PETER    ! 101 / TSHIRTS  ! 51,750.00 !    ! 
+-----------------------------------------------------------------------------------------------------+ 




Prepared by :        :             MANAGER 
        THE EAST INDIA COMPANY PVT LTD  
        THE EAST INDIA COMPANY PVT LTD  

       Date : 14/03/2016   Time : 12:45:14   Page : 2                          
Office : INDIANA. Code : 102    Description : PANTS      Month : 03/2016 
Office : INDIANA. Code : 102    Description : PANTS      Month : 03/2016 

+=====================================================================================================+ 
! Slno ! CrId ! Name Of Customer   ! Item Code & Descrptn  !  Amount !    ! 
    Slno CrId  Name Of Customer   Item Code & Descrptn    Amount     ! 
+=====================================================================================================+ 
! 1 ! 234567 ! CHARLES DICKENS   ! 102 / PANTS   !  915.00 !    ! 
! 2 ! 456789 ! RICH HILLSIDE   ! 102 / PANTS   !  1,610.00 !    ! 
+-----------------------------------------------------------------------------------------------------+ 




Prepared by :     :            MANAGER 

我有一個類似上面的文件。使用SED/uniq的/ awk中如何刪除所有的標題,標題文本等,如下圖所示:如何使用sed和uniq刪除列以外的所有其他行,如最後給出的結果?

! Slno ! CrId ! Name Of Customer   ! Item Code & Descrptn  !  Amount !    ! 
! 2 ! 234567 ! CHARLES DICKENS   ! 101 / TSHIRTS  ! 65,805.00 !    ! 
! 3 ! 345678 ! ROOSEVOLT HUGAS   ! 101 / TSHIRTS  ! 50,140.00 !    ! 
! 4 ! 456789 ! RICH HILLSIDE   ! 101 / TSHIRTS  ! 48,130.00 !    ! 
! 5 ! 567890 ! SAMUEL PETER    ! 101 / TSHIRTS  ! 51,750.00 !    ! 
! Slno ! CrId ! Name Of Customer   ! Item Code & Descrptn  !  Amount !    ! 
! 1 ! 234567 ! CHARLES DICKENS   ! 102 / PANTS   !  915.00 !    ! 
! 2 ! 456789 ! RICH HILLSIDE   ! 102 / PANTS   !  1,610.00 !    ! 

其冗長的文件,但是我在這裏只貼出一個樣本。 關於此問題還有一個問題,我想從整個列表中添加每個客戶的值,並使用Awk打印客戶名稱和總金額。請提供解決方案。

+0

相當的客戶名單。 –

+0

抱歉,這是與我的辦公室有關的列表,但我創建了所有虛擬物品,例如替換TSHIRTS的基本工資和固定個人津貼作爲褲子等,以隱藏我辦公室的身份。我從來沒有想到它會給出一個錯誤的藉口。 – adam1969in

回答

1
grep '^\!.*\!' < theFile.txt 
+0

感謝您的快速回復。它工作太棒了。請回答我的第二個問題,在末尾給出 – adam1969in

+0

@ adam1969in,SO不是一種編碼服務! – user3439894

+0

對不起,我是awk的初學者。我不知道正確的命令使用'for'循環來重複搜索模式(在這種情況下,客戶ID)並添加它的值。 – adam1969in

1

awk來救援!

$ awk -F! '/^!/{gsub(",","",$6); 
       if($6==$6+0)a[$4]+=$6; 
       else{h1=$4;h2=$6}} 
      END{print h1,h2; for(k in a) print k,a[k]}' mess 

Name Of Customer     Amount 
SAMUEL PETER    51750 
RICH HILLSIDE    49740 
CHARLES DICKENS   66720 
ROOSEVOLT HUGAS   50140 
ADOLF HITLER    57080 

也許你可以看看如何格式化量(提示printf

+0

非常好的一個。但是,爲什麼它以與客戶ID相反的順序打印。謝謝你,先生。 – adam1969in

+0

如果您可以回答您關於訂購的問題,我會發佈一個解決方案,作爲您瞭解更多關於'awk'的動機。 – karakfa

相關問題