Это поможет точно узнать, что вы хотите сделать, но вы можете это сделать. Изучение расширения параметра BASH, вероятно, довольно необходимо.
В зависимости от того, что вам нужно делать, вам может потребоваться отделить расширение и имя файла, а может и нет.
Я предположим, что вы уже cd вышли в папку с файлами, о которых идет речь.
case 1: предположим, что вы хотите изменить строку «bad» на «good» в каждом имени файла; то вы можете использовать простую подстановку, т. е. вы можете сделать что-то вроде:
for file in * ; do mv "$file" "${file//bad/good}" ; done
(Удостоверьтесь, что нет никаких изменений, которые изменяют плохое, чтобы хорошо перезаписывать что-то уже есть.) Это будет работать независимо от расширения.
case 1: Suppse вам нужно добавить «новое» перед расширением, что бы это ни было, тогда вы можете сделать:
for file in * ; do filename="${file%.*}" ; extension="${file##*.}" ; mv "$file" "${filename}new.${extension}" ; done
Расширение останется неизменным, каково бы оно ни было.
Я бы дал больше советов, но опять же, я действительно не знаете, что вы пытаетесь сделать, точно.
Я вижу, к чему вы пытаетесь добраться. Попробуйте вставить что-то, что принимает wysiwyg, отредактируйте его там, а затем скопируйте в Thunderbird?
Возможно, будет работать автор bluegriffon или libreoffice.
Вот модификация вашего скрипта, которая позволяет редактировать html напрямую.
Он также обрабатывает проблемы с кодировкой символов: если вы отвечаете на электронную почту от кого-то, использующего Windows, скорее всего, кодировка застряла в UTF-16, что не подходит для редактирования. Возможно, вам потребуется установить модуль chardet в Python.
Заменить 'vi' вашим текстовым редактором по выбору, в subprocess.call(....
#!/usr/bin/env python
import gtk
import chardet
import os
import getopt
import subprocess
dtype = 'text/html'
htmlclip = gtk.Clipboard().wait_for_contents(dtype).data
encoding = chardet.detect(htmlclip)['encoding']
# Shove the clipboard to a temporary file
tmpfn = '/tmp/htmlclip_%i' % os.getpid()
with open (tmpfn, 'w') as editfile:
editfile.write(htmlclip.decode(encoding))
# Manually edit the temporary file
subprocess.call(['vi', tmpfn])
with open (tmpfn, 'r') as editfile:
htmlclip = editfile.read().encode(encoding)
# Put the modified data back to clipboard
gtk.Clipboard().set_with_data(
[(dtype,0,0)],
lambda cb, sd, info, data: sd.set(dtype, 8, htmlclip),
lambda cb, d: None )
gtk.Clipboard().set_can_store([(dtype,0,0)])
gtk.Clipboard().store()
Это делает полный редактирование цикла, изменение буфера обмена “ на месте & rdquo ;.
Я использую его, чтобы компенсировать недовольство Thunderbird отсутствием функции html-редактора:
выбрать все с помощью ctrl + a в окне создания сообщения ctrl + c запустить вышеуказанный скрипт, который открывает редактор & ndash; внесите изменения в исходный код html и закройте ctrl + v в окне компоновки, чтобы перезаписать весь контент с помощью вашей редакции html.Я действительно не использую Thunderbird, но вы должны иметь возможность использовать расширение для редактирования источника в Thnderbird - например:
https://addons.mozilla.org/en-us / thunderbird / addon / edit-html-source / не обновлялся на протяжении веков https://addons.mozilla.org/en-us/thunderbird/addon/stationery/