2017-09-19 4 views
0

基本的なスペース区切りのファイルをbashで読み込もうとしていますが、変数に対する操作を実行したいと思います。スペース区切りファイルの解析とbashでの操作

bashの特定の「列」を参照する命名法は何ですか? 明示的にbashを使用しようとしています。ファイルを区切り、基本的な操作を行う方法を具体的に参照する有用な文書がある場合は、非常に便利です。

私は次のようになります持っているテキスト文書の例:

123456789 LastName FirstName 1 2 3 
123456789 LastName FirstName 1 2 3 
123456789 LastName FirstName 1 2 3 
123456789 LastName FirstName 1 2 3 
123456789 LastName FirstName 1 2 3 

私はそれを並べ替え、複数の列の操作を実行したいと思います。

私はこれをawkを使って行っていますが、私はこれをbashで行いたいと思います。 My awkの実装:

awk '{average = ($2 + $3 + $4)/3} {print (average, "["$1"]", $2",", $3); average = 0}' $'readme.txt' 

これはどのように達成できますか?

+0

私はこれをawkで実装することができました。私は単にプログラムの読み方とawk/sed以外の変数の参照方法を尋ねています。私は解決策を求めているのではなく、構文だけです。 – Derp

答えて

0

並べ替えと分割にそれぞれsortcutが必要です。

cut --delimiter=' ' --fields=LISTLISTは、カンマで区切られた列インデックスのリストで、LISTのインデックスで示される各スペース分割線のセクションを返します。

sort --field-separator=' ' --keys=POSは、ファイルの行を並べ替えて、stdoutに出力します。 --field-separator=' 'は、位置をスペースで区切ります。

POSはF [.C] [OPTS]です。ここで、Fはフィールド番号、Cはフィールド内の文字位置です。両方とも起点1です。-tと-bのどちらも有効でない場合、フィールド内の文字は前の空白の先頭から数えられます。 OPTSは、そのキーのグローバル注文オプションを無効にする1つ以上のシングルレターの注文オプションです。キーが与えられていない場合は、行全体をキーとして使用します。

exprbcを数学に使用できます。

wc -lは、合計行数を表示します。

無視する必要があるヘッダーがある場合は、tail -n +2を使用して、2行目からファイル全体を取得します。

パイプとサブシェルをすべてストラップします。一般に、あなたが望む処理の種類は、awkに場所がある理由です。

+0

私は本当の質問が何であるか分からなかったので、私は奇妙なばらばらの答えを出しました。 –

関連する問題