Bash에서 파이프되는 텍스트에서 캐리지 리턴을 제거하는 방법은 무엇입니까?

Bash에서 파이프되는 텍스트에서 캐리지 리턴을 제거하는 방법은 무엇입니까?

이 명령을 사용하여 내가 입력한 마지막 명령을 가져옵니다.

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

Bash에서는 줄 번호를 제거하여 잘 작동하지만 문제가 있습니다(명령만 원하기 때문에 귀찮습니다). 이것을 xsel클립보드 관리자에 파이프합니다.

또한 후행 줄 바꿈/캐리지 리턴을 포착합니다...

일부 쉘에서는 다음을 사용할 수 있다는 것을 알고 있습니다.

echo "text \c"

나는 이것을 이것에 어떻게 통합할지 잘 모르겠습니다 bash.

즉석에서 입력할 수 있는 가장 쉬운 솔루션을 위한 보너스 포인트 :)

답변1

내장된 bash를 사용하여 기록의 마지막 명령을 가져오고 !!이를 사용하여 echo -n끝에 개행 없이 해당 명령을 인쇄할 수 있습니다.

echo -n !!

!!매개변수는 실제 명령 문자열로 확장되며 -n출력에 개행 문자가 포함되지 않도록 합니다.

답변2

귀하의 질문을 올바르게 읽었다면 후행 줄 바꿈을 제거해야 합니다. 다음 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'"

관련 정보