私はUnixスクリプトに初めて触れました。
最初の行(たとえば、で始まる行)の一致する文字列に基づいてファイルのHDR
名前を変更したいと思います。
File.txt
次のテキストファイル()があります。
HDR##############################1234###
########################################
########################################
以下は私のコードです。パターンで始まり、HDR
パターンがあるファイルの最初の行について私のコードでより具体的にチェックするにはどうすればよいですか1234
?5678
if grep -o "1234" File.txt
then mv File.txt Pattern1.txt
echo "File with pattern1 received..."
elif grep -o "5678" File.txt
then mv File.txt Pattern2.txt
echo "File with pattern2 received..."
else
echo "File have no matching pattern..."
fi
ベストアンサー1
行を読むには「read」を使用し、何をするかを決定するには「case」を使用します。
{
IFS= read -r Firstline
case "$Firstline" in
("HDR"*"1234"*) mv File.txt Pattern1.txt
echo "File with pattern1 received..." ;;
("HDR"*"5678"*) mv File.txt Pattern2.txt
echo "File with pattern2 received..." ;;
(*) echo "Nothing matched" ;;
esac
} < File.txt