我在 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
答案2
我将采用逐步方法:
- 将文件保存到新位置,你将从那里删除不需要的内容
- 删除所有非用户名内容:
- 全部替换
(?<!@)\b[^@]*
- 什么也没有
(要获得解释,请参阅https://regex101.com/)
- 全部替换
- 删除重复项:
- 全部替换
(\@[^@]+)(.*)\1
- 到
\1\2
- 全部替换
- 最后每行获取一个用户名:
- 全部替换
(\@[^@]+)
- 到
\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 功力比我强的人可能想提出一种简单的方法来删除输出文件中的前导空白行。