0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

連番の任意のファイル関連のshellでの操作に関するメモ

Posted at

##前書き
Linuxで連番ファイルについて取り扱ったのですが、思ったより手こずったのでメモを残しておこうと思いました。もっとわかりやすくてまどろっこしくない方法があったら知りたいです。

##番号がついている任意のファイルの中で中身のないものを判別し中身の存在するファイルだけをコピーする


#!/bin/sh

echo "file名を入力してください" #これがターミナルに表示されます
read DATA #読み込んだ文字列

#何番から読むかの指定
echo "何番から読みます?"
read banme 


#何番まで読むかの指定
echo "何番まで読みます?"
read kaisuu

j=$kaisuu
k=$banme


#ここから本体
#今回XXXX_n.txt(nは任意の自然数)のようなものを読んでいるとします
for (( f=k; f<=j ;f++ ))
do
filename="$DATA"_"$f".txt

#桁数を合わせたかったのでファイル名を変更するために設定してあります。
PN=$(printf "%02d" $f)
Refilename="$DATA"_"$PN".txt

#このtest -s っていうのがファイル存在する?空じゃない?という判別に使われるそうです。
    if test -s "$filename"; then
       cp "$DATA"_"$f"_1.txt  ./cp/$Refilename
    fi
done

##抜けのある連番を詰めて保存する方法

こちらを参考にしました。
https://nullpopopo.blogcube.info/2015/06/renbanrename.html
ちょっと違うのは、任意のファイル名を読み込めるようにした点です。

#!/bin/sh

#任意のFile名を読み込めます。
echo "file名を入力してください"
read DATA

for A in $(ls $DATA*.txt) ; do echo $A ; done | cat -n | awk -v data=$DATA '{print "mv",$2,data"_"$1".txt"}' | sh

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?