파일의 URL을 사용하여 Firefox에서 탭 열기

파일의 URL을 사용하여 Firefox에서 탭 열기

일부 URL과 네트워크 이름이 포함된 file.txt가 있습니다. 그것은 다음과 같습니다:

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

(이름에 공백이 없고 콜론 뒤에 공백이 있습니다.) 파일의 특정 웹사이트에 대한 탭을 Firefox에서 열 수 있기를 원합니다. 나는 다음과 같은 것을 시도했습니다 :

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

그러면 문서의 각 단어가 새 탭으로 열립니다. 네트워크 이름을 사용하여 열 URL을 선택할 수 있기를 원합니다. 한 번에 하나의 URL을 열어 보겠습니다. 파일 길이는 약 100줄입니다. 이를 수행하는 쉬운 방법이 있습니까? 감사해요!

Bodo가 제안한 대로 몇 가지 세부 사항은 다음과 같습니다.

  • urls.txtHOME질문에 표시된 줄을 포함하는 파일이 디렉터리에 있습니다 .
  • 키와 URL은 콜론과 공백( :)으로 구분됩니다.
  • openurl foo bar baz예를 들어 후행 콜론( ) 없이 파일의 키가 있는 명령을 실행하려고 합니다 .foobarbazWEB1WEB2:

답변1

awk다음 을 사용할 수 있습니다 xargs.

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

-F ': 'awk필드를 콜론과 공백으로 구분 해 보겠습니다 . 이 시퀀스는 URL에 나타나서는 안 됩니다.

답변2

대답은 질문에 정의된 요구 사항을 기반으로 합니다.

다음과 같은 쉘 스크립트를 작성할 수 있습니다 openurl.

#! /bin/sh

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

이를 실행하면 예제에 있는 두 개의 URL이 열려야 합니다 openurl WEB1.www.url.comopenurl WEB1 WEB2

파일에 존재하지 않는 키는 무시됩니다. 이는 예를 들어 openurl WEB1 WEB3열리고 www.url.com아무것도 하지 않음을 의미합니다 WEB3.

물론 openurl쉘 스크립트 대신 함수를 생성할 수도 있습니다.

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와 같은 파일의 키입니다."

관련 정보