-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathfilename_formatter.sh
56 lines (48 loc) · 1.33 KB
/
filename_formatter.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#!/bin/bash
echo -e "perintah argument:
[0] == menggunakan perintah bash (script filename)
[1] == base direktori
[2] == tipe file (maksimal 2 value)
[3] == ignore file atau folder (opsional; use "\""./<nama_direktori>"\"")
"
# pisahkan nilai $2 (jenis nama file) jika memiliki koma
if [[ "$2" == *","* ]];
then
string="$2"
str_value=${string#*,}
str_value2=${string%%,*}
else
str_value="$2"
str_value2="$2"
fi
# jangan jalankan skrip perintah jika tidak ada
# argument yang diberikan
if [[ "$1" == "" ]] || [[ "$2" == "" ]];
then
echo "tidak ada perintah argument yang diberikan silahkn tentukan minimal dua argumen"
exit 1
fi
echo "file diubah:"
IFS=$'\n'; set -f
for fname in $(find $1 -type f -name "*$str_value2" -or -name "*$str_value")
do
ignore_files="$(echo "$3" | tr "," "\n")"
str="${fname}"
value=${str%/*}
for files in $ignored_files
do
if [ "${fname}" == "$value/$files"] || [ "$value" == "$files"];
then
continue 2
fi
done
new_fname=$(echo "${fname}" | tr ' ' '_')
new_fname=$(echo "${new_fname}" | tr '[:upper:]' '[:lower:]')
new_fname=$(echo "${new_fname}" | tr '-' '_')
if [ "${fname}" != "${new_fname}" ]
then
echo " ${fname} --> ${new_fname}"
git "mv" "${fname}" "${new_fname}"
fi
done
unset IFS; set +f