从 Notepad ++ 或其他文本编辑器复制特定单词

从 Notepad ++ 或其他文本编辑器复制特定单词

我在 Notepad ++ 中有很多这样的文本:

User Actions 
 Follow
Online Marketing
@LookSocialMedia
Talk about #socialmedia, #SEO, online marketing, affiliate sales, #SMO, #PPC and much more. Join the discussion.


User Actions 
Following
Mashable Verified account
@mashable
News, resources, inspiration and fun for the connected generation. Tweets by @mashable staff.

我想提取所有 Twitter 句柄 - 获取如下唯一列表:

@mashable  
@LookSocialMedia

所有 Twitter 用户资料均列于一个列表中。

提取这些用户名并在一个文档中拥有它们的唯一列表的最佳方法是什么?

答案1

一种选择是使用 Notepad++ 中的书签。

搜索:

^@.*$

在 内Mark,检查Bookmark lineRegular Expression(但不检查. matches newline

在此处输入图片描述


点击Search-> Bookmark->Remove unmarked lines

在此处输入图片描述


你应该剩下以下内容:

在此处输入图片描述

答案2

我将采用逐步方法:

  1. 将文件保存到新位置,你将从那里删除不需要的内容
  2. 删除所有非用户名内容:
  3. 删除重复项:
    • 全部替换(\@[^@]+)(.*)\1
    • \1\2
  4. 最后每行获取一个用户名:
    • 全部替换(\@[^@]+)
    • \1\n

答案3

这会在与当前文件相同的目录中生成一个新文件,并在原文件名和扩展名之间添加“.sorted”。

在 Notepad++ 中显示输入文件时,点击F5然后粘贴以下内容:

powershell -command "get-content '$(FULL_CURRENT_PATH)' | select-string -list -pattern '^@' | sort-object" > "$(CURRENT_DIRECTORY)\$(NAME_PART).sorted.$(EXT_PART)"

请注意,如果存在,这将覆盖现有文件。

运行或保存命令。保存后,您可以指定一个组合键快捷键。PowerShell 功力比我强的人可能想提出一种简单的方法来删除输出文件中的前导空白行。

相关内容