簡體   English   中英

使用awk格式化文本

[英]formatting text using awk

嗨,我有以下文字,我需要使用awk或sed來打印3個單獨的列

11/13/14    101 HUDSON AUBONPAINJERSEY CITY NJ      $4.15
11/22/14    MTAMVM*110TH ST/CATNEW YORK NY          $19.05
11/22/14    DUANE READE #14226 0NEW YORK NY         $1.26

所以我想產生一個包含所有日期的文件。 包含所有描述的另一個文件和包含所有數字的第三個文件

我可以使用awk打印第一列printy $ 1,然后使用-F [$]選項打印最后一列,但由於有空格等,所以我不能僅打印中間列。我可以忽略空格嗎? 還是有更好的方法呢?

提前解凍

嘗試這樣做:

 $ awk '
     {
         print $1 > "dates"; $1=""
         print $NF > "prices"; $NF=""
         print $0 > "desc"
     }
' file

要么 :

awk -F'  +' '
    {
        print $1 > "dates"
        print $2 > "desc"
        print $3 > "prices"
    }
' file 

然后 :

$ cat dates
$ cat desc
$ cat prices

還不夠快,無法成為第一個提供awk解決方案的人,所以這里有grepsed ...

grep -o '^.*/.*/1.' file   #first col
sed 's/^.*\/.*\/1.//;s/\$.*//' file   #middle col
grep -o '\$.*$' file    #last col

暫無
暫無

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

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