1. ホーム
  2. スクリプト・コラム
  3. リナックスシェル

シェルバッチファイルの作成とリネームのサンプルコード

2022-01-05 13:32:42

I. 問題点

     forループでlinux-1からlinux-10までの10個のファイルを一括作成し、そのファイルの接頭辞をunixに変更します。

II. 解答

1、ファイルの一括削除

linux-1からlinux-10までの名前のファイルを一括で作成します。

(1) 方法1:通常の方法

#Batch create 10 files using a for loop linux-1 to linux-10
#! /bin/sh
 
[ ! -d $PWD/file ] && mkdir -p $PWD/file && exit 1
 
for count in `seq 10`
do
    touch $PWD/file/linux-$count
done

(2) 方法2

#Batch create 10 files using for loop linux-1 to linux-10
#! /bin/sh
 
if [ ! -d $PWD/file ] && mkdir -p $PWD/file
then
    path=$PWD/file
		for count in `seq 10`
		do
				cd $path && touch linux-$count
		done
else
    exit 1
fi

(3) 方法3

シェルコマンド: touch linux-{1..10} または touch linux-`seq 10` を使用します。

(4) 効果の実行

2. ファイル名の変更

linux-1 から linux-10 へのファイルから unix-1 から unix-10 へのファイルへの一括リネーム。

(1) 方法1

#Batch name change using for loop
#! /bin/sh
 
cd $PWD/file
for count in `seq 10`
do
    mv linux-$count unix-$count
done

(2) 方法2:通常の方法

#Batch name change using for loop
#! /bin/sh
 
if [ -d $PWD/file ] && cd $PWD/file
then
		for filename in `ls linux*`
		do
				mv $filename `echo $filename | sed "s/linux/unix/g"`
		                #equivalent to mv $filename unix-`echo $filename | cut -d"-" -f2`
                done
fi

(3) シェルコマンドで、rename linux unix linux* を実行します。

(4) 効果を実行する

III. 概要

(1)sedとcutの使い方は、ドキュメントを参照することで理解できます。

(2)バッチ処理の方法は他にもたくさんあるので、最適なものを選びましょう。

今回の記事は、シェルバッチによるファイル作成とリネームについてです。shell batch create and rename filesについては、過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。