zoukankan      html  css  js  c++  java
  • 有效壳第2部分:成为一个剪贴板体操运动员

    这是我的“有效Shell”系列文章的第二部分,其中包含了一些实用技巧,帮助您处理日常任务,提高效率: 第1部分:导航命令行 在本文中,我将向您展示如何使用shell作为一种有效的工具来补充您使用剪贴板的方式。 Linux用户注意:在本文中,我将使用pbcopy和pbpaste命令来访问仅在Mac上可用的剪贴板。要在其他平台上访问相同的命令,请检查附录:Linux上的剪贴板访问。 使用剪贴板上的外壳 您可以轻松地对剪贴板的内容使用shell命令。只需使用pbpaste输出剪贴板,通过一些命令运行输出,然后使用pbcopy复制结果。 试着复制以下文字: 隐藏,复制Co

      

    de

    Kirk Van Houten
    Timothy Lovejoy
    Artie Ziff

    然后在壳中,运行: 隐藏,复制Code

    pbpaste

    您应该会看到剪贴板的内容。现在,我们来看看shell访问剪贴板可以帮助完成常见任务的一些方法。 清除格式 你不讨厌它当你必须复制格式化的文本,而没有一个简单的方法粘贴成非格式化的文本?这里有一个例子,我想复制维基百科页面'bash',并粘贴到一个Word文档: 许多程序都有一个快捷方式来粘贴剪贴板的内容(比如‘command + shift + v’),但是如果你像我一样,你可能会发现自己需要粘贴到一个纯文本编辑器中来复制纯文本。 如果您只是运行命令pbpaste | pbcopy,您可以轻松剥离格式: 我们只是管道输出剪贴板(最终以纯文本结束,因为我们在终端中!)然后管道将纯文本返回到剪贴板中,替换之前的格式化文本。 这个小技巧可能非常有用。但是我们可以使用相同的模式以更复杂的方式快速操作剪贴板的内容。 操纵文本 假设有人给我发了一封邮件,列出了我需要邀请参加某个活动的人: 现在的问题是: 列表是Excel格式的列表有重复的我需要把每个名字转换成电子邮件地址比如Artie_Ziff@simpsons.com 我想尽快给大家发邮件。 我们可以在不离开shell的情况下快速处理这个任务。 复制下面的原始文本,如果你想尝试相同的命令,并遵循: 隐藏,复制Code

    Artie Ziff
    Kirk Van Houten
    Timothy Lovejoy
    Artie Ziff
    Nick Riviera
    Seymore Skinner
    Hank Scorpio
    Timothy Lovejoy
    John Frink
    Cletus Spuckler
    Ruth Powers
    Artie Ziff
    Agnes Skinner
    Helen Lovejoy

    首先,我们将文本复制到剪贴板。 现在我们可以粘贴和排序: 隐藏,复制Code

    $ pbpaste | sort
    Agnes Skinner
    Artie Ziff
    Artie Ziff
    Artie Ziff
    Cletus Spuckler
    Hank Scorpio
    Helen Lovejoy
    John Frink
    Kirk Van Houten
    Nick Riviera
    Ruth Powers
    Seymore Skinner
    Timothy Lovejoy
    Timothy Lovejoy

    然后删除重复: 隐藏,复制Code

    $ pbpaste | sort | uniq
    Agnes Skinner
    Artie Ziff
    Cletus Spuckler
    Hank Scorpio
    Helen Lovejoy
    John Frink
    Kirk Van Houten
    Nick Riviera
    Ruth Powers
    Seymore Skinner
    Timothy Lovejoy

    用&号替换下划线: 隐藏,复制Code

    $ pbpaste | sort | uniq | tr " " "_"
    Agnes_Skinner
    Artie_Ziff
    Cletus_Spuckler
    Hank_Scorpio
    Helen_Lovejoy
    John_Frink
    Kirk_Van_Houten
    Nick_Riviera
    Ruth_Powers
    Seymore_Skinner
    Timothy_Lovejoy

    然后加上电子邮件地址的最后一部分: 隐藏,复制Code

    $ pbpaste | sort | uniq | tr " " "_" | sed 's/$/@simpsons.com/'
    Agnes_Skinner@simpsons.com
    Artie_Ziff@simpsons.com
    Cletus_Spuckler@simpsons.com
    Hank_Scorpio@simpsons.com
    Helen_Lovejoy@simpsons.com
    John_Frink@simpsons.com
    Kirk_Van_Houten@simpsons.com
    Nick_Riviera@simpsons.com
    Ruth_Powers@simpsons.com
    Seymore_Skinner@simpsons.com
    Timothy_Lovejoy@simpsons.com

    这看起来完美!我们现在可以把转换后的文本回到剪贴板: 隐藏,复制Code

    $ pbpaste | sort | uniq | tr ' ' '_' | sed 's/$/@simpsons.com' | pbcopy

    总之,我们有以下管道: pbpaste -输出剪贴板排序-命令输出uniq -删除行tr ' ' '_' -将空格替换为下划线sed /$/@simpsons.com -将电子邮件域添加到行尾 一次性构建这个是很困难的,让我们再看看管道。 考虑管道 有些命令可能不太熟悉,有些可能没有意义,你可能会想“我怎么能记住它”。实际上,有很多方法可以解决上面的问题,这是我通过反复修改输入文本提出的方法。 这里是我的意思-你会看到我实际上建立一个管道像这样一步一步: 你可以在屏幕截图中看到,我开始简单,一步一步添加我们需要的阶段。 (注:如果你想知道我是如何在一个时间前后跳跃一个单词的,请查看最后一章“导航命令行”)。 我们在这里所做的一切都是可行的,因为这些简单的命令都遵循“Unix哲学”。它们可以很好地完成一件事,并且每个命令都希望自己的输入稍后成为另一个命令的输入。具体地说: 这些命令很简单——sort对列表进行排序,uniq使元素唯一。命令不会产生不必要的输出——sort不会添加诸如已排序项之类的标题,这很好,否则会使管道混乱。我们把命令链接在一起,一个命令的输出变成另一个命令的输入。 我们不需要这样的命令:“取一个模糊的列表,对其进行排序和清理,然后将成对的单词转换为电子邮件地址”——只需几个简单的“工作马”命令,我们就可以很容易地自己构建这个功能。 在本系列中,我们将介绍和详细介绍这些主要的命令。我们还将花更多时间研究管道。 我希望这是有用的!如果你有任何问题或建议,请评论。看到进一步的文章,因为他们出来,跟随回购在: github.com/dwmkerr/effective-shell 或者在Twitter上关注@dwmkerr。 附录- Linux上的剪贴板访问 如果你在使用Linux,没有pbcopy和pbpaste逗号教你们。您可以使用xclip工具创建等效的命令。 首先,安装xclip: 隐藏,复制Code

    sudo apt-get install -y xclip

    然后将以下内容添加到。bashrc文件中: 隐藏,复制Code

    # Create mac style aliases for clipboard access.
    alias pbcopy="xclip -selection c"
    alias pbpaste="xclip -selection c -o"

    显然,您可以使用任何您喜欢的别名!本文假设使用了pbcopy和pbpaste。 本文转载于:http://www.diyabc.com/frontweb/news328.html

  • 相关阅读:
    day10函数嵌套
    day 9
    day 8函数
    day7预习
    合唱队形(解题思维的锻炼)
    Cow Exhibition (背包中的负数问题)
    Investment(完全背包)
    Cash Machine(多重背包二进制转换)
    Milking Time(DP)
    Brackets Sequence(升级版)
  • 原文地址:https://www.cnblogs.com/Dincat/p/13437547.html
Copyright © 2011-2022 走看看