Linux
如何從 bash 中傳輸的文本中修剪輸入?
我正在使用這個命令來獲取我最後輸入的命令:
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'"