我有一个文件和标题列表,如下所示:
Title file1.txt
Title2 file2.txt
Title3 file3.txt
如何逐行将此传递给脚本,将第1列和第2列设置为单独的变量。 e.g。
将标题发送为$ 1,将file1.txt作为$ 2发送到我的脚本。 然后将Title2作为$ 1发送,将file2.txt作为$ 2发送到同一个脚本。
我不知道是否有更简单的方法可以做到这一点,但感谢任何帮助,谢谢。
答案 0 :(得分:0)
尝试:
for i in "Title file1.txt" "Title2 file2.txt" "Title3 file3.txt"; do Title $i; done
这实际上就像在做:
$ for i in "a b" "c d" "e f"; do echo $i; done
a b
c d
e f
答案 1 :(得分:0)
您可以尝试制作运行目标脚本的其他脚本:
#! /bin/bash
ls /path/where/files/stay >> try.txt
a=1
while [ $a -lt 7 ]
do
./script $(sed "$a"'q;d' try.txt) $(sed "$(($a+1))q;d" try.txt)
a=$(($a+2))
done
此脚本将运行您的脚本,从文件中获取您喜欢的变量。
答案 2 :(得分:0)
只需逐行读取文件,使用参数扩展来提取标题和文件名。
while read -r title file ; do
echo Title is "$title", file is "$file".
done < input.lst
如果标题可以包含空格,则会更复杂:
while read -r line ; do
title=${line% *} # Remove everything from the first space.
title=${title%%+( )} # Remove trailing spaces.
file=${line##* } # Remove everything up to the last space.
echo Title is "$title", file is "$file".
done < input.lst