2016-11-02 7 views
0

ファイルの内容の一部を表示しようとしています。 私は現在、今、私の問題は、私はさらにとしてbashの特定のフィールド/列に2回目のカットを適用する

bla=0.,bleh=2.,name=hello_im_here 

のように見える第五フィールドを編集したいです私は

CONTENT="(cat foo.dat | cut -d ' ' -f 1,4,5)" 
TOPRINT=$(printf "%7s %10s %14s\n" $(eval $CONTENT)) 

に興味がある分野をカットし、フォーマットするには、次のコードを使用します私が表示したい部分だけが名前( "hello_im_here")です。 私はawk(cut string in a specific column in bashで行われているように)を使うことができると思いますが、私はこのコマンドに慣れていないので、これについてより具体的な情報をお寄せいただきたいと思います。 ありがとうございます。

+0

「awk」に慣れ親しんだことはありますか? – hek2mgl

+0

たぶん私はファイルの5番目のフィールドだけを扱う方法は見当たらず、残りの部分はそのまま残しておくことを強調しておきたいはずです。それ以外の場合は私は尋ねません。そして、タイトルが示唆するように、コードをユーザーのために読みやすくするために、できるだけcutを使用したいと考えています。 – Neutrinoceros

+0

だから、あなたは 'cut 'でそれを動作させようとしましたか? – hek2mgl

答えて

1

これを試すことができますか。

#!/bin/bash 
CONTENT=$(awk '{gsub(" *.*=","",$5); printf "%7s %10s %14s\n",$1,$4,$5}' foo.dat) 
echo $CONTENT 
+2

'cat'の不要な使い方、なぜ' awk '{...}' foo.dat'や 'awk '{...}'

+0

@ DavidC.Rankin;あなたが正しいです。私はansを更新しました。ありがとう。 –

+1

確かに、その習慣を壊すには誰でもしばらく時間がかかります(私を含む ':)' –

関連する問題