Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Как в bash перенаправить вывод из файла в буфер обмена vim?  (Прочитано 2885 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Electricity

  • Автор темы
  • Активист
  • *
  • Сообщений: 250
    • Просмотр профиля
Здравствуйте.
Вывожу из файла к примеру так:
cat filename | grep 'что-то'Получаю две строчки.
Потом их нужно вставить в другой файл, к примеру со строки 5.
Есть команда вставки строки:
sed -s '5i\вставляемая_строка' -i имя_файлано она вставляет строку. А вывод из файла как?
Может можно занести в буфер обмена vim через перенаправление вывода, и потом в vim вставить через 'y'
?

(изучаю консоль, bash)
Kubuntu 18.04 amd64, Qt: 5.9.5, KDE Frameworks: 5.44.0, plasmashell 5.12.7, корпус чёрный, клава белая

Оффлайн Cxms

  • Активист
  • *
  • Сообщений: 407
    • Просмотр профиля
Вот посмотри:
https://forum.ubuntu.ru/index.php?topic=263873.msg2089110#msg2089110

Цитировать
А вывод из файла как?
определенной строки?

Оффлайн Haron Prime

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 11313
  • Нетолерантный социопат
    • Просмотр профиля
для вима есть плагин, который позволяет вставлять в текущий файл вывод любой команды
название не скажу, т.к. не пользуюсь им
посмотрите тут

или перенаправляйте вывод в системный буфер
Код: (bash) [Выделить]
cat filename | grep 'что-то' | xclip -selection clipboard
вставить из системного буфера можно командой
Код: (vim) [Выделить]
:r! xclip -oтребуется наличие в системе пакета xclip
у меня эта комбинация повешена на удобный мне хоткей

Код: (vim) [Выделить]
nmap      <F7>         :r! xclip -o<CR>
imap      <F7>         <Esc>:r! xclip -o<CR>
« Последнее редактирование: 15 Ноября 2015, 21:33:32 от Haron Prime »

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Код: (bash) [Выделить]
grep 'что-то' filename > temp.file
sed  "5r temp.file" -i имя_файла
Что касается vim то клипбоард находится в регистре "+, а системный в регистре "*
« Последнее редактирование: 16 Ноября 2015, 00:51:06 от Azure »
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн aSmile

  • Активист
  • *
  • Сообщений: 754
    • Просмотр профиля
Что-то к виму прявязались. Ведь есть xargs

cat filename | grep 'что-то' | xargs commandcommand будет выполнена для каждой строки
Если надо увеличивать номер строки, то переменную i заведи в начале и используй вместо номера i++

 

Страница сгенерирована за 0.072 секунд. Запросов: 25.