0

分析する必要のあるデータのリストがあります。最初に行うことは、ファイルが本当に必要なファイルであるかどうかを確認し、次に4番目の列に従ってデータを並べ替え、次に並べ替えられた行を手動で並べ替える必要があります。

たとえば、行の3番目の単語を印刷してから、最初の単語などを印刷する必要があります。これが私が書いたものです
。mainScript:

#!/bin/bash
for file in `ls ${1}` ; do
    if [[ ! ($file = *.user) ]] ; then
        continue
    fi

    sort -nrk4 $file | source printer_script

done

printer_script:

#!/bin/bash
echo $3
echo $1
echo $2

ソートされた行をパイプラインで送信しても何も印刷されないのはなぜですか?

4

2 に答える 2

3

パイプを使用すると、並べ替えの出力がスクリプトの標準入力に送られ、代わりにパラメーターが表示されるためです。その出力を取得してパラメーターとして渡したい場合は、次のようにする必要があります。

./printer_script $(sort -nrk4 $file) 
于 2012-05-19T08:05:07.753 に答える
1

パイプから読み取りたい場合、printer_scriptは次のようになります。

#!/bin/bash
read a b c
echo $c
echo $a
echo $b
于 2012-05-19T08:19:56.587 に答える