使用文件上的 url 在 Firefox 中打开选项卡

使用文件上的 url 在 Firefox 中打开选项卡

我有一个 file.txt,其中包含一些网址和网络名称。就像是:

WEB1: www.url.com
WEB2: www.url2.com

(名称中没有空格,冒号后面有一个空格)我希望能够在 Firefox 中为该文件中的特定网站打开一个选项卡。我尝试过这样的事情:

xargs -a file.txt firefox -new-tab "$line"

这会将文档中的每个单词作为新选项卡打开。我希望能够使用网络名称选择要打开的网址。我一次会打开一个网址。该文件的长度约为 100 行左右。有什么简单的方法可以做到这一点吗?谢谢!

正如 Bodo 所建议的,这里有一些细节:

  • urls.txt您的目录中有一个文件HOME,其中包含问题中所示的行。
  • 键和 URL 由冒号和空格 ( :) 分隔。
  • 您想要运行一个命令,openurl foo bar baz其中,是文件中的键,例如,且不带尾随冒号 ( )。foobarbazWEB1WEB2:

答案1

您可以使用awkxargs

awk -F ': ' '$1 == "WEB2" {print $2}' file.txt | xargs -I{} firefox -new-tab {}

-F ': '让我们awk用冒号后跟空格分隔字段。此序列不应出现在 url 中。

答案2

答案基于问题中定义的要求。

您可以创建一个名为的 shell 脚本openurl

#! /bin/sh

for i in "$@"
do
    grep "^$i": "$HOME"/urls.txt
done | sed 's/.*: //' | while read url
do
    firefox -new-tab "$url"
done

当您运行它时openurl WEB1,它应该打开www.url.com,当您运行它时,openurl WEB1 WEB2它应该打开示例中的两个 URL。

文件中不存在的键将被忽略。这意味着egopenurl WEB1 WEB3将打开www.url.com并且不执行任何操作WEB3

当然你也可以创建一个函数openurl来代替shell脚本。

如果包含 URL 表的文件非常大(远超过 1000 行),或者如果您想要指定许多 URL 键(远超过 10),则简单的方法可能会变慢。在这种情况下,最好使用不同的方法一次从文件中提取所有匹配的行,而不是grep为每个命令行参数运行多次。


如何以选项卡形式打开 URL 的部分复制自阿乔姆·S·塔什基诺夫回答

答案3

awk '{print $2}' file.txt | grep -v ": " | while read url; do firefox -new-tab "$url"; done

添加是| grep -v ": "因为 OP 指出" 是文件中的键,如 WEB1、WEB2,不带尾随冒号 (:)。"

相关内容