回答編集履歴

1

コメントを受けて追記

2018/05/29 00:39

投稿

otn
otn

スコア84505

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
+ ```