1

したがって、このカンマ区切りのファイルが表示されます: I need a print to look below " lastname, phone_number, zip

名字が H で始まるすべての人の場合、私は

市外局番650の電話番号のみ。出力は逆の郵便番号でソートする必要があります」

たとえば、次のように 4 つの列しかありません。

Harris, K, (650)345-1760 1200, Ellis Street Suite 230 Mountain CA 93042
Mitchell, A, (212)-555-1234 650, This Street NY NY 01234
Thomson, F, (650)-999-9999 1450, The Terrace Avenue Stratford MA 10101
irvin, h, (650)678-2445 12345, denver st santa clara 96503

私はこのコードで正しい道を進んでいると思いました:

cat data.csv | awk -F"," '{print $1, $2, $3, $4}' |sort -t ',' -k1|grep "(650)"

次に、姓の最初の文字のみをgrepしようとします...

cat data.csv | awk -F "," '$1~/"H*"/' '{print $1, $2, $3, $4}'

しかし、エラーが発生し続けます。最初の文字だけでなく、最後の列の文字列の一部だけを検索して、それを逆順で検索するにはどうすればよいですか?(ソートで想像できますか?)

4

2 に答える 2

0
awk -F', ' '
    toupper($1) ~ /^[HI]/ && $3 ~ /^\(650\)/ {
        n = split($NF, ary, " ")
        print ary[n] ":" $0
    }
' filename |
sort -rn |
cut -d: -f2-

生産する

irvin, h, (650)678-2445 12345, denver st santa clara 96503
Harris, K, (650)345-1760 1200, Ellis Street Suite 230 Mountain CA 93042
于 2012-10-31T00:45:26.357 に答える
0

あなたの仕事に役立つツールであるr17を見てみることをお勧めします。

于 2012-10-30T19:43:56.113 に答える