Linux

如何從 bash 中傳輸的文本中修剪輸入?

  • August 15, 2014

我正在使用這個命令來獲取我最後輸入的命令:

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

它在 bash 中工作得很好,刪除了行號,但是我有一個問題,(呃,煩人,因為我只想要命令)我正在將它傳遞給xsel剪貼板管理器:

它還抓住了尾隨的換行符/輸入符……

我知道在某些 shell 中您可以使用:

echo "text \c"

我不確定如何將其納入其中bash

最容易即時鍵入的解決方案的額外積分:)

您可以使用 bash 內置命令獲取歷史記錄中的最後一條命令,!!並使用echo -n該命令在末尾不帶換行符的情況下列印該命令:

echo -n !!

!!參數將擴展為實際的命令字元串,並-n確保輸出不包含換行符。

如果我正確閱讀了您的問題,則需要刪除尾隨換行符。試試這個 perl 位:`perl -ne ‘chomp and 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'"

引用自:https://unix.stackexchange.com/questions/40335