如何在Bash中将每行输出写入文件?

4

以下是我的脚本的一部分:

num=`wc -l /tmp/list.txt | awk '{sum += $1} END {print sum}'`
for i in $(seq $num)
do
    touch /tmp/pages/$i.txt
done

#OR:

#awk '{system("touch /tmp/pages/"NR".txt")}' /tmp/list.txt
i=1
for line in $(cat list.txt)
do
    #for (( i = 1; i <= num; i++ )) 
    #do
    wget $line --no-check-certificate -O /tmp/pages/$i.txt
    i= i+1
    #done
done

如何将list.txt中每行的输出分配给我的i变量?

例如:

line one > 1.txt

line two > 2.txt

And so on...


1
你想这样做,而不是将wget的结果放入文件中吗? - Barmar
2个回答

5

使用 awk

awk '{print > NR".txt"}' list.txt

4
i=1
while read line
do
    echo "$line" > /tmp/pages/$i.txt
    let i=i+1
done < list.txt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接