locate ... | less
vydává dlouhou cestu, která je v terminálu zobrazena jako několik řádků, i když je to ve skutečnosti jeden řádek.
Zkopíruji cestu z terminálu tak, že označím text myší a stisknu Ctrl +Shift +C .
Když to vložím do textového souboru, dostanu v textu nechtěný řádek změn, přesně stejným způsobem, jako je zobrazen v terminálu.
Ale pamatuji si, že někdy mohu zkopírovat výstup dlouhé cesty pomocí locate ... | less
, aniž bych zavedl nechtěnou změnu řádku, a někdy to nedokážu. Neuvědomuji si, že něco dělám jinak.
Zajímalo by mě tedy, jak zajistit, aby k problému nedošlo? Díky!
Můj OS:Ubuntu 12.04.
Můj terminál:Gnome Terminal 3.4.1.1
Přijatá odpověď:
Namísto kopírování toho, co je zobrazeno na terminálu (pouze to, co se vejde na obrazovku), zkopírujte skutečný text. Ke kopírování dat ze schránky X nebo do ní použijte jeden z externích nástrojů xsel nebo xclip (mají většinou stejné funkce, v této odpovědi použiji xsel). Chcete-li zkopírovat do schránky, předejte požadovaný obsah standardním vstupem. Při vkládání ze schránky je obsah zapsán na standardní výstup.
V méně, použijte |
příkaz k propojení hromady řádků pomocí příkazu. Přejděte na první řádek, se kterým chcete provést akci, zadejte mm
pro nastavení značky přejděte na poslední řádek a napište |mxsel -b
a stiskněte Enter . Předdefinovány jsou dvě značky:^
pro začátek souboru $
pro konec souboru. Chcete-li tedy zkopírovat celý soubor, použijte <|$xsel -b
. Chcete-li zkopírovat jeden řádek, použijte mm|mxsel -b
a Enter .
Odstraňte -b
možnost kopírování do primárního výběru místo do schránky.