Как добавить текст к концу строки, когда шаблон подобран?

Мой удар в этом: это кажется, что программы регистрируют корректные ключевые команды (как свидетельствуется визуальными индикаторами.) Действительно ли Вы положительны, что аппаратными средствами Вашей звуковой карты на самом деле управляет микшер?

Этот поток имеет некоторые большие общие аудио советы по устранению неисправностей проблемы:

http://crunchbang.org/forums/viewtopic.php?id=4432

Но мое предположение - то, что аудио интерфейс управления на самом деле не контролирует Ваши системные аппаратные средства аудио (в данный момент.) Разузнавание, которое не могло бы быть всем этим простым. Если бы я был на Вашем месте, то я попробовал бы живую начальную загрузку CD Ubuntu (также базировался, Debian основывал распределение), и посмотрите, работают ли их аудио настройки управления по умолчанию. Если они делают, то можно безопасно исключить фактическое аппаратное неправильное функционирование, и пытаться получить подсказку относительно того, какие пакеты на самом деле использовались, каким образом, и применяют их к #! установка.

8
25.05.2015, 16:14
5 ответов

Предполагая, что ШАБЛОН на самом деле является () и что что-то может находиться между () и что они не обязательно находятся в конце строки :

sed -i '/(.*)/ s/$/ ;/' test.txt
2
27.01.2020, 20:12

Попробуйте:

sed --in-place '/PATTERN/s/.*/&;/' /path/to/file.txt
0
27.01.2020, 20:12

$ соответствует концу строки, поэтому ваш шаблон должен быть )$, а не $), как в вашем примере.

Также здесь не нужен xargs, безопаснее использовать флаг -exec в fine:

find . -name test.txt -exec sed -i '/PATTERN/ s/)$/); /' '{}' +

Если ваша версия find не работает с + в конце, то используйте \; вместо этого (спасибо @glenn-jackman):

find . -name test.txt -exec sed -i '/PATTERN/ s/)$/); /' '{}' \;

Наконец, нет необходимости во флаге g в идиоме s/something$//, поскольку в каждой строке есть только одно вхождение $.

3
27.01.2020, 20:12
perl -ipe 's/$/;/ if /PATTERN/'

Это добавит ; в конце, если строка содержит PATTERN.

3
27.01.2020, 20:12

используя ex (что эквивалентно vi -e/vim -e).

Один файл:

ex +"g/local/s/$/;/g" -cwq foo.txt

Все файлы test.txt рекурсивно:

ex +"bufdo g/local/s/$/;/g" -cxa **/test.txt

Примечание: Убедитесь, что опция globbing (**) включена: shopt -s globstar, если ваша оболочка поддерживает это.

Примечание: Команда :bufdo не является POSIX.

1
27.01.2020, 20:12

Теги

Похожие вопросы