Ubuntu

從帶有不需要的更改行的終端複製長的單行文本

  • May 23, 2018

locate ... | less輸出一條長路徑,在終端中顯示為多行,儘管它實際上是單行。

我通過用滑鼠選擇文本並點擊Ctrl++從終端複製Shift路徑C。當我將其粘貼到文本文件中時,我會在文本中得到不需要的更改行,與終端中顯示的方式完全相同。

但我記得有時我可以通過 複製長路徑輸出locate ... | less,而不會引入不必要的換行,有時我不能。我不知道我是否會做一些不同的事情。

所以我想知道如何確保問題不會發生?謝謝!

我的作業系統:Ubuntu 12.04。

我的終端:Gnome 終端 3.4.1.1

不要複製終端上顯示的內容(僅適合螢幕的內容),而是複制實際文本。使用外部實用程序xselxclip 之一(它們具有大部分相同的功能,我將在此答案中使用 xsel)從 X 剪貼板複製數據或將數據複製到 X 剪貼板。要復製到剪貼板,請在標準輸入上傳遞所需的內容。從剪貼板粘貼時,內容將寫入標準輸出。

在 less 中,使用|命令通過命令管道傳輸一堆行。滾動到要操作的第一行,鍵入mm以設置標記,滾動到最後一行,然後鍵入|mxsel -b並按Enter。預定義了兩個標記:^用於文件的開頭,$用於文件的結尾。因此,要複製整個文件,請使用<|$xsel -b. 要複製單行,請使用mm|mxsel -band Enter

刪除-b複製到主要選擇而不是剪貼板的選項。

其實際行為如下:

如果您在less其中並且有一個文件的行很長,那麼如果您向下滾動長行並向上滾動,則在複製整個文本時會有多行。之後,當您將分割線向下滾動到終端底部並再次向上滾動時,將再次刪除換行符。

對於視覺化:

在此處輸入圖像描述

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