Как я могу обрезать возврат каретки из текста, который передается в bash?

Я использую эту команду для получения последней введенной команды:

history | cut -c 8- | tail -n 2 | head -n 1 

Он очень хорошо работает в bash, удаляя номера строк, но есть одна проблема с ним: (er, раздражение, потому что я хочу только команду), и я xsel это в xsel буфера обмена xsel :

Он также захватывает завершающую новую линию / возврат каретки …

Я знаю в некоторых оболочках, которые вы можете использовать:

 echo "text \c" 

Я не уверен, как включить это в bash .

Дополнительные точки для решения, которые легче всего набирать на лету 🙂

2 Solutions collect form web for “Как я могу обрезать возврат каретки из текста, который передается в bash?”

Вы можете получить последнюю команду в своей истории с помощью встроенного bash !! и используйте echo -n для печати этой команды без символа новой строки в конце:

 echo -n !! 

!! аргумент будет расширяться до фактической командной строки и -n гарантирует, что вывод не содержит символа новой строки.

Если я правильно читаю ваш вопрос, вам нужно удалить конечную новую строку. Попробуйте этот бит perl: `perl -ne 'chomp и print'

Примеры:

 [root@talara test]# ls -la total 20 drwxr-xr-x 3 root root 4096 Jun 7 21:30 . dr-xr-x---. 28 root root 4096 Jun 8 08:42 .. -rw-r--r-- 1 root root 0 Jun 7 15:10 FILE1 drwxr-xr-x 3 root root 4096 Jun 7 14:49 ham -rw-r--r-- 1 root root 36 Jun 7 21:31 t -rw-r--r-- 1 root root 11 Jun 7 16:21 test [root@talara test]# ls -la | perl -ne 'chomp and print' total 20drwxr-xr-x 3 root root 4096 Jun 7 21:30 .dr-xr-x---. 28 root root 4096 Jun 8 08:42 ..-rw-r--r-- 1 root root 0 Jun 7 15:10 FILE1drwxr-xr-x 3 root root 4096 Jun 7 14:49 ham-rw-r--r-- 1 root root 36 Jun 7 21:31 t-rw-r--r-- 1 root root 11 Jun 7 16:21 test 

И чтобы упростить написание снова и снова и на лету, вы можете сделать псевдоним: alias chomp="perl -ne 'chomp and print'"

  • Не удается эхо или создать символическую ссылку на файл со специальными символами в имени внутри сценария bash
  • Запустить Comand для всех файлов (вложенных папок в папках)
  • Скрипт для чтения строки за строкой из файла, который передается другой команде и выводится в другой файл
  • Извлечение определенной информации из журналов
  • Как разбить строку - Bash
  • Почему не работает: while true; do "$ my_command"; сон 1; сделанный
  • не может получить hello world shell script для запуска в FreeBSD
  • Задача SED, агрегирование строки, содержащей фигурные скобки
  • Как удалить строку с переменным поиском с помощью команды sed
  • Зеркало LFTP включает в себя - включая другие каталоги, отличные от того, что я включил
  • Если количество строк в строке csv больше, чем x, то удалите второй экземпляр
  • Linux и Unix - лучшая ОС в мире.