Вы можете попробовать это решение :
TODO для Clickpad для работы со светодиодом:
(Включить предложенный архив для Ubuntu 12.04: https://wiki.ubuntu.com/Testing/EnableProposed После dist-upgrade выполните this:)
Создайте xserver-xorg-input-synaptics с пакетом поддержки led:
mkdir tmpbuild cd tmpbuild apt- получить исходный код xserver-xorg-input-synaptics d cd xserver-xorg-input-synaptics - * / debian / patches wget https://bugs.launchpad.net/ ubuntu / + source / linux / + bug / 582809 / + attachment / 3183411 / + files / 200-add_led_support_with_double_tap-synaptics-1.6.0-mohegan_V1.patch ls -1 2 * .patch >> series {{ 1}} cd ../ .. sudo apt-get build-dep xserver-xorg-input-synaptics debchange -i
Добавить комментарии соммы (например , «Добавить поддержку светодиодов двойным нажатием») и выйти.
debuild -us -uc -i -I sudo dpkg -i ../xserver-xorg-input-synaptics_*.deb
Создание модуля dkms для psmouse
cd .. apt-get source linux-image-`uname -r` sudo mkdir -p / usr / src / psmouse-`uname -r` / src sudo cp linux - * / drivers / input / mouse / * / usr / src / psmouse-`uname -r` / src / sudo gedit / usr / src / psmouse-`uname -r` / dkms. conf
введите этот текст, сохраните файл и выйдите из gedit: (замените версию ядра текстом , получите с помощью команды
] uname -r
. Для меня это 2.6.38-9-generic)PACKAGE_NAME = "psmouse" PACKAGE_VERSION = "_ версия вашего ядра _" CLEAN = "rm -f *.* o " BUILT_MODULE_NAME [0] =" psmouse "MAKE [0] =" make -C $ kernel_source_dir M = $ dkms_tree / $ PACKAGE_NAME / $ PACKAGE_VERSION / build / src psmouse.ko " BUILT_MODULE_LOCATION [0] =" src "DEST_MODULE_LOCATION [0] =" / updates " AUTOINSTALL =" да "
Закройте файл и:
wget https://bugs.launchpad.net/ubuntu/+source/linux/+bug/582809/+attachment/3183441/+files/synaptics_led_support_v2-ubuntu_12.04.patch -P / tmp cd / usr / src / psmouse-`uname -r` sudo patch -p1 -i /tmp/synaptics_led_support_v2-ubuntu_12.04.patch> sudo dkms add -m psmouse -v `uname -r` sudo dkms build -m psmouse -v `uname -r` sudo dkms install -m psmouse -v` uname -r`
3) Перезапустить свой компьютер и наслаждайтесь!
Патчи предназначены для исходных текстов 1.6, поэтому вам придется немного изменить их для работы с 1.8
Чтобы уточнить вашу xargs
попытку
xargs -L1 sh -c 'f="${0##*/}"; printf "%s\n" "$0" > "${f%.*}.strm"' < file
Первая замена f="${0##*/}"
удаляет компоненты пути URL, а вторая "${f%.*}.strm"
удаляет и заменяет расширение.
Пр.
$ xargs -L1 sh -c 'f=${0##*/}; printf "%s\n" "$0" > "${f%.*}.strm"' < file
$ head *.strm
==> file_name1.strm <==
http://domain.com/file_name1.mkv
==> file_name2.strm <==
http://domain.com/file_name2.mkv
==> file_name3.strm <==
http://domain.com/file_name3.mkv
Отредактировано для исправления ошибок, упомянутых в комментариях, но ответ bellka — лучшая версия этого решения.
Далее ссылки в file
читаются построчно. Каждая ссылка записывается в файл с именем, содержащим базовое имя ссылки, за которым следует требуемое окончание.
while read link; do
echo "$link" >$(basename "${link%.mkv}").strm
done <file
То же, что и в один вкладыш:
cat file | while read link; do echo "$link" >$(basename "${link%.mkv}").strm; done
Я попытаюсь реабилитировать чистое -решение bash, предложенное @Erwan:
while IFS= read -r link; do
filename="${link##*/}"
echo "$link" > "${filename%.mkv}.strm"
done < file
IFS= read -r
для чтения строки ${var##<pattern>}
заменяет переменную с самым длинным префиксом, совпадающим с удаленным. См. «Удалить соответствующий шаблон префикса» в разделе «Расширение параметров» в bash (1 ). Есть много других полезных модификаторов расширения параметров ${var%<pattern>}
заменяет переменную кратчайшим суффиксом, совпадающим с удаленным («Удалить соответствующий шаблон суффикса»)