teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

コメントを受けて追記

2018/05/29 00:39

投稿

otn
otn

スコア86349

answer CHANGED
@@ -9,4 +9,15 @@
9
9
  end
10
10
  ```
11
11
  カレントディレクトリの`#`を含むファイルを処理します。UTF16では2バイト長の文字しかない前提。
12
- リネーム処理自体はコメントにしてあるので、確認後アンコメントしてください。
12
+ リネーム処理自体はコメントにしてあるので、確認後アンコメントしてください。
13
+
14
+ #追記
15
+ 高級言語を使わないと難しいですね。上のコードは、`#691c#8a3c`というようなファイル名だけでなく`#691c#8a3c.txt`のように16進表記以外の部分もあるかも知れない前提で書きましたが、それが無くて、`#691c#8a3c`というような16進表記部分しか無いのであれば、こんな感じで。
16
+ ```Bash
17
+ for file in \#*
18
+ do x=$(echo "$file" | sed 's/#(..)(..)/\x\1\x\2/g')
19
+ newfile=$(printf "$x" | iconv -f utf-16BE -t utf-8)
20
+ echo rename "$file" to "$newfile"
21
+ # mv "$file" "$newfile"
22
+ done
23
+ ```