У меня была такая же проблема на xubuntu 14.04 (64) и xmodmap (с точно такими же ключами) и я нашел решение, используя xkb вместо xmodmap: Remapping Keys in Ubuntu (using xkb)
Решение xkb требует только изменить ключевые коды в
/usr/share/X11/symbols/pc
и очистить кэш xkb на
rm -rf /var/lib/xkb/*
После этого у меня не было никаких задержек. Возможно, это работает и в Linux Mint.
Это можно сделать с помощью Python следующим образом:
#!/usr/bin/python
import glob
import re
import os
from collections import Counter
origNames = glob.glob('*jpg')
finalNames = []
for i in origNames:
for old, new in [(r'\d+x\d+', ''), (r'\d', ''),(r'^\W+', ''),(r'-*\.-*', '.'), (r'\.jpg$', '')]:
i = re.sub(old, new, i)
finalNames.append(i)
counts = Counter(finalNames)
for s,num in counts.items():
if num > 1:
for suffix in range(1, num + 1):
finalNames[finalNames.index(s)] = s + str(suffix)
print(origNames, finalNames)
for i,j in zip(origNames, finalNames):
os.rename(i,j+".jpg")
В Bash решение может выглядеть так:
#!/bin/bash
shopt -s extglob
for fn_old in *.jpg; do
i=0
fn_new=${fn_old##+([-0-9])} # strip leading number sequence in basename
fn_new=${fn_new/%[-0-9]*([-0-9x]).jpg/.jpg} # strip trailing number sequence in basename
while [[ -e $fn_new ]]; do # see if proposed name already exists
i=$((i+1)) # doublure counter
fn_new=${fn_new/%*([-0-9]).jpg/-$i.jpg} # try new filename with updated number
done
echo "$fn_old" -- "$fn_new"
mv "$fn_old" "$fn_new"
done
Будьте осторожны с командой mv
. Вы можете закомментировать его (или заменить его наcp
)при первом запуске, просто чтобы увидеть, соответствует ли схема переименования тому, что вы хотите/ожидаете.
Объяснение шаблонов оболочки и манипуляций со строками см. в :Сопоставление шаблонов Bash и Обработка строк Bash .