#!/bin/bash if [ $1 = "kadai1-1_data.txt" -o $1 = "kadai1-2_data.txt" -o $1 = "kadai1-3_data.txt" ]; then #実行時引数が指定されたファイルの場合と、そうでない場合と区別する。 cat $1 | tr '\n' ' ' > kadai1-a.txt #引数のデータ内の改行を空白に変換して、複数行だったものを一行にまとめる。 echo '' >> kadai1-a.txt #文字列の末尾に改行を追記する。 for x in `seq 1 26` do cat kadai1-a.txt | tr '[A-Z]' '[B-ZA-B]' | tr '[a-z]' '[b-za-b]' > kadai1-b.txt #引数のデータファイルの文字列をアルファベット順に1文字ずらし新たなファイルに出力する。 cat kadai1-b.txt #kadai1-b.txtの内容を表示する。 cat kadai1-b.txt > kadai1-a.txt #kadai1-b.txtの内容をkadai1-a.txtに出力する。 done #上記の操作を26回繰り返すと文字列をアルファベット順に1〜26文字ずらしたことになる。 rm ./kadai1-a.txt ./kadai1-b.txt #作業過程でつくった一時ファイルを削除する。 else echo '指定されたファイル以外の文字列が入力されました。やり直してください。' echo 'kadai1-1_data.txt, kadai1-2_data.txt, kadai1-3_data.txtのいずれかを入力してください。' #実行時引数が指定されたファイル以外の場合はエラーが出るようにする。 fi