在bash中的每行文本文件上循环

在bash中的每行文本文件上循环,bash,text,Bash,Text,以下是文本的外观: 428, "http://www.youtube.com/watch?v=aqlJl1LfDP4", "NEW YORK,NEW YORK- FRANK SINATRA - YouTube", "moc.ebutuoy.www.", 1, 0, 0, 20, 96, 1329427038818198, "aiODk063S1YW" 429, "http://www.youtube.com/watch?v=KIiUqfxFttM&feature=list_relate

以下是文本的外观:

428, "http://www.youtube.com/watch?v=aqlJl1LfDP4", "NEW YORK,NEW YORK- FRANK SINATRA - YouTube", "moc.ebutuoy.www.", 1, 0, 0, 20, 96, 1329427038818198, "aiODk063S1YW" 
429, "http://www.youtube.com/watch?v=KIiUqfxFttM&feature=list_related&playnext=1&list=AVGxdCwVVULXfJnKOaSACBmNaC6ZZ71zS7", "Frank Sinatra - That's Life - YouTube", "moc.ebutuoy.www.", 1, 0, 0, 20, 96, 1329427228164029, "96X5yyV88p8v"

我想获取bash脚本中文本文件的每一行。获取第二个参数(url),然后将其修补到脚本中

我真的不知道如何循环每条线,然后拉出第二个参数

感谢

以美元表示的URL(cut-d,-f2
打印每行的第二个参数:

awk '{ print $2 }' thefile.txt
要在脚本中使用它(即循环):

需要注意的一点是,
将包含在URL中

如果要删除这些,只需获取第2个参数的子字符串:

awk '{ print substr( $2, 2, length($2) -3 ) }' thefile.txt
我们从行的第二个字符开始,显示行的全长-3

在循环中:

for URL in `awk '{ print substr( $2, 2, length($2) -3 ) }' thefile.txt`
do
    echo $URL
done

基于Oli的答案,您可以使用sed删除开头的
和结尾的
”,

cut -f 2 -d " " thefile.txt | sed -e "s/^\"//" -e "s/\"\,$//"

试试看。我不是问如何下载,我是问如何在bash中循环。我已经设置了youtube到mp3的脚本。好的。你可能需要
阅读
(bash内置)。
for URL in `awk '{ print $2 }' thefile.txt`
do
    echo $URL
done
awk '{ print substr( $2, 2, length($2) -3 ) }' thefile.txt
for URL in `awk '{ print substr( $2, 2, length($2) -3 ) }' thefile.txt`
do
    echo $URL
done
cut -f 2 -d " " thefile.txt | sed -e "s/^\"//" -e "s/\"\,$//"