
わかりました。ここが質問するのに適切な場所であることを願います。ファイルは 2 つあります。
最初のファイルには、クラス CRN 番号、インストラクター ID 番号、クラス セクション番号、学生数の 4 つのフィールドがあります。
例:
0002 T00005 006 15
0004 T00004 012 26
.
.
etc
2 番目のファイルには、インストラクター ID 番号、名、姓、建物、市外局番、電話番号の 6 つのフィールドがあります (私が知る限り)。
(名/姓が 1 つのフィールドか 2 つのフィールドかはわかりません...)
例:
T00001 Larry Lastname Corley 555 555-5555
T00002 Ron Lastname Coreley 555 111-1111
.
.
etc
私が答えるべき質問は、「各講師は特定の学期に何セクションを教えたか」です。答えは次の形式にする必要があります。
# of sections | Instructor ID # | FirstName | LastName
(デモでは「|」を使用していますが、実際の解決策ではスペースのみを使用します)
これまでに、私は次のことを行いました:
$ cat sections/sem092 | sort -k 2 | awk '{ print $2 }' | uniq -c
(sem092
私が最初に言及したファイルです)
そして出力はそれで必要なものに近いです。上記のコードから得たもの:
Num. of Sections Taught | Instructor ID #
何らかの方法で、パイプを介して、ID 番号を他のファイル内の名前と一致させる必要があります。 を使用する必要があると強く感じていますgrep
。誰かに「手を引いてもらう」必要はありません。これは非常に興味深いと思いますが、途中で何かを見逃したと思うので、1、2 回促す必要があります。
答え1
コマンドの出力を保存します:
cat sections/sem092 | sort -k 2 | awk '{ print $2 }' | uniq -c > firstPart.txt
この行をファイルに保存しますsearchInstructorName.sh
:
cat $1 | while read line; do
instructorID=`echo $line | awk '{print $2}'`
name=`grep $instructorID instructorList | awk '{print $2 " " $4}'`
echo "$line $name"
done
このスクリプトでは、次のfirtsPart.txt
行が想定されています。
5 T00005
これはinstructorList
6 つのフィールドを持つファイルの名前です。
最後に試してください:
bash searchInstructorName.sh firstPart.txt
動作するはずです。
これは単一のスクリプトを含むバージョンです:
cat $1 | sort -k 2 | awk '{ print $2 }' | uniq -c | while read line; do
instructorID=`echo $line | awk '{print $2}'`
name=`grep $instructorID $2 | awk '{print $2 " " $4}'`
echo "$line $name"
done
これらの行を保存しsearchInstructorInfo.sh
て実行します:
bash searchInstructorInfo.sh sections/sem092 instructorList
答え2
Letizia さん、詳しい回答をありがとうございます。あなたのコードの一部を使用しましたが、そのコードからさらにアイデアを得ることができました。この投稿を中途半端に終わらせないために、最終的な (ぞっとするような) コードは次のようになりました。
cat sections/sem092 | sort -k 2 | awk '{ print $2 }' | uniq -c > no3
paste instructors | awk '{ print $2 " " $3 }' > no3n
#guess I could have just used cat above
paste no3 no3n
このコードは恥ずかしいものだとわかっています。今日教授に見せたら、「うーん...ちょっと考えさせて。ここで何をしたの?」と言われたんです。笑。でも、教授はそれを見て、大丈夫だと言いました。教授はいつもこう言っています。「諺にあるように、猫の皮を剥ぐ方法は 1 つだけではない」
皆さん、特にレティシアさん、助けてくれてありがとう。