問題の前にセッティングです.
Linux(WSLも可)のコマンドラインを使用します.はじめに端末で以下のコマンドを順に実行し,week.txtを作成します.
echo Monday > week.txt echo Tuesday >> week.txt echo Wednesday >> week.txt echo Thursday >> week.txt echo Friday >> week.txt echo Saturday >> week.txt echo Sunday >> week.txt
そのあと,sed -e 's/day/-day/' week.txt というコマンドを実行したとき,出力が次のようになる(各行の「day」が「-day」に変わる)のを確認します.
Mon-day Tues-day Wednes-day Thurs-day Fri-day Satur-day Sun-day
sedを使用して,テキストファイルをさまざまに変換するための入門を,学生に体験してもらいます.そこで次の3問を用意したのですが,問2と問3について,出題意図を明確にするために指示を与えたいと考えました.どうすればいいでしょうか.
問1. sedを使用して,week.txtの中の「Monday」のみを「Mon-day」に変更して(他の行はそのまま)出力するような実行コマンドを解答しなさい.
問2. sedを使用して,week.txtの中の「Sunday」と「Saturday」を「Holiday」に変更して(他の行はそのまま)出力するような実行コマンドを解答しなさい.
問3. sedを使用して,week.txtの6行目を「Today」に変更して(他の行はそのまま)出力するような実行コマンドを解答しなさい.
追加の指示をしなければ,問2は「6行目と7行目をHolidayに変更」,問3は「SaturdayをTodayに変更」と,誤解される可能性があるのです.
といったところで,実際の授業では,問2の後ろに「実行コマンドに数字を含めてはならない.」を,問3の後ろには「実行コマンドに「6」を含めること.」を,指示しました.
問1から問3までの解答はここでは書きません.いずれも正解となる実行コマンドが複数あります.元ネタは毎年1回,出題しているものです.出題内容を変えるためのバリエーションとして,week.txtの作り方についてMondayから始めるか,Sundayから始まるかの2通りがあります.「Today」は授業の曜日*1に設定しますし,「Due Date(期限日)」に変えることも可能です.
*1:毎週月曜日の授業ですが,今年度も昨年度も,大学の学年暦に従い,月曜日以外の授業でした.