2016-09-07 4 views
0
  • 私はラインを含むtsv形式のファイルを持っているから分割項目 - >バッシュ:明確な列

    1 New York, New York[10] 8,244,910 1 New York-Northern New Jersey-Long Island, NY-NJ-PA MSA 19,015,900 1 New York-Newark-Bridgeport, NY-NJ-CT-PA CSA 22,214,083 
    
  • それは3つのtab区切られた列があります。これはある - >

    1 New York, New York[10] 8,244,910

    1 New York-Northern New Jersey-Long Island, NY-NJ-PA MSA 19,015,900

    1 New York-Newark-Bridgeport, NY-NJ-CT-PA CSA 22,214,083

  • 私がある、first columnの最初の4つのcomma (',') seperated要素をしたい - >

    1 New York, New York[10] 8,244,910

  • 私のアプローチcut -d',' -f1-4であり、この場合には、私のアプローチは次のように出力を提供します - >

    1 New York, New York[10] 8,244,910 1 New York-Northern New Jersey-Long Island

私はこれをどのように問題を解決できますか?

オリジナル問題リンク:https://www.hackerrank.com/challenges/text-processing-cut-5?h_r=next-challenge&h_v=zen

+0

区切り文字 '\ t'(' cut'default)を使用した最初の 'cut'最初の列で区切り文字として '、'を使用して2番目の' cut'にリダイレクトし、最初の4つの列を出力します。 'cut -f 1 file | cut -d \、-f 1-4'です。 –

+0

この問題にawkを使ってみましたか? – dood

+1

タブはcutのデフォルトの区切り文字です。ex: 'echo -e '1 \ t2 \ t3 \ t4' | cut -f1' – Sundeep

答えて

1

cut -f-2 < - 私の質問

cut -f-3 <の回答 - HackerRank問題への答え、それはいくつかのインデントの問題

を持っているとして、(私はちょうどtabにより分割し、取っています最初の2つの部分。

1

あなたは非常に簡単にこれを行うにはawkを使用することができます。

echo -e "1 New York, New York[10] 8,244,910\t1 New York-Northern New Jersey-Long Island, NY-NJ-PA MSA 19,015,900\t1 New York-Newark-Bridgeport, NY-NJ-CT-PA CSA 22,214,083" | awk -F '\t' ' { print $1 } ' 

は出力:

1 New York, New York[10] 8,244,910 
+0

入力に '\ t'はありません。このコマンドは正しい入力のためには機能しません。 – jbsu32

+0

@ jbsu32 3つのタブ区切りのカラムがあると書いたが、\ tはバックスラッシュエスケープの解釈を可能にするecho -eと一緒に使うとタブに変換されるだけである。 – dood

+0

これは、 'echo -e 'と答えるだけです。1 New York、New York [10] 8,244,910 \t 1 New York-New Jersey-Long Island、NY-NJ-PA MSA 19,015,900 \t 1 New York-Newark-Bridgeport、 NY-NJ-CT-PA CSA 22,214,083 "| awk -F '\ t' '{print $ 1}' ' – jbsu32

0

あなたはこれをしたいですか?

cut -d $'\t' -f-3 
+0

' cut -d $ '\ t' -f-3'ではありませんか? – jbsu32

+0

タブは 'cut'のデフォルトの区切り文字です。 '-f'オプションは間違いなくその前にダッシュを付けるべきです。 'cut -f-3'はフィールド1~3を切ります。 – tripleee

+0

私は@ jbsu32タンクを修理します –