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.