2016-09-13 6 views
0

同じ行にテキストファイルから複数の値を取得し、私はこれらのバレスwhith curlコマンドを作るバッシュ:私は行ごとに2文字列をテキストファイルを持っている

テキストファイルが必要です。

www.example.com 38494740 
www.example.org 49347398 
www.example.net 94798340 

をI行にコマンドcurlを作成する必要があります。

curl www.example.com/38494740 
curl www.example.org/49347398 
curl www.example.net/94798340 

私は思いやりwhileを持っていますが、私は行ごとに2文字列を持っている....

UPDATE:

私は、変数として、これらの値を使用する必要がある、コマンドも、このようcurl www.exmple.com/foo/38494740

することができ

答えて

2
awk -v OFS="/" '{$1=$1}1' curl 
www.example.com/38494740 
www.example.org/49347398 
www.example.net/94798340 

説明:
OFSは、あなたの出力フィールドが分​​離される方法を定義します。ここでは "/"に設定されています。
{$1=$1}:新しいOFSが有効になるようにレコードを再構成するためにawkを作成することです。
1:は、行を印刷するためのawkのデフォルト動作です。コメントを1として

while read domain sub 
do 

curl "$domain"/"$sub" 


done < curl 
+0

、コマンドでも、このよう 'カールwww.exmple.com/fooの/ 38494740' – hellb0y77

+0

あなたはより多くの明快さと細部との質問を更新することができますすることができますか?ありがとう。 –

+0

はい申し訳ありません...... – hellb0y77

0

簡単な解決方法の1つは、trを使用してすべてのスペースを/に変換することです。

tr ' ' '/' < inputfile 
1
while read hostname number ; do echo "curl ${hostname}/${number}" ; done < inputFile 

出力

curl www.example.com/38494740 
curl www.example.org/49347398 
curl www.example.net/94798340 

IHTH

1

これは終らの一つ確実な方法です。私は、変数として、これらの値を使用する必要がある

#!/bin/bash 

while read -r url port;  # Read the tab-spaced file for the 'url' and 'port' 
do 
    curl "${url}"/"${port}" # Construct the URL as "url/port" to run curl command on it 
done < file 
+0

@PS:編集のおかげで、「foolproof」はもう存在しません。 :) – Inian

+0

まだそこに、あなたが完全な証拠または馬鹿証拠を意味するかどうかわからない。 –

+0

@chepner:編集に感謝します! – Inian

関連する問題