回答編集履歴
1
コメントを受けて追記
test
CHANGED
@@ -21,3 +21,25 @@
|
|
21
21
|
カレントディレクトリの`#`を含むファイルを処理します。UTF16では2バイト長の文字しかない前提。
|
22
22
|
|
23
23
|
リネーム処理自体はコメントにしてあるので、確認後アンコメントしてください。
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
#追記
|
28
|
+
|
29
|
+
高級言語を使わないと難しいですね。上のコードは、`#691c#8a3c`というようなファイル名だけでなく`#691c#8a3c.txt`のように16進表記以外の部分もあるかも知れない前提で書きましたが、それが無くて、`#691c#8a3c`というような16進表記部分しか無いのであれば、こんな感じで。
|
30
|
+
|
31
|
+
```Bash
|
32
|
+
|
33
|
+
for file in \#*
|
34
|
+
|
35
|
+
do x=$(echo "$file" | sed 's/#(..)(..)/\x\1\x\2/g')
|
36
|
+
|
37
|
+
newfile=$(printf "$x" | iconv -f utf-16BE -t utf-8)
|
38
|
+
|
39
|
+
echo rename "$file" to "$newfile"
|
40
|
+
|
41
|
+
# mv "$file" "$newfile"
|
42
|
+
|
43
|
+
done
|
44
|
+
|
45
|
+
```
|