根据文本文件内容中的行数运行循环的次数(Unix Shell脚本)

时间:2019-05-13 17:00:54

标签: linux shell unix scripting

我在文本文件中有多行。 示例:我在文本文件中有3行,并且

Emp_Table_Columns.txt|Employee_Temp.csv|Emp.csv
Dep_Table_Columns.txt|Dep_Temp.csv|Dep.csv
Line_Table_Columns.txt|Line_Temp.csv|Line.csv

我想将FOR循环(或任何其他循环)运行3次,而在运行时,我想将值Field 1,Field 2,field 3传递给变量。

如果说1st Loop正在运行,那么我将阅读Emp_Table_Columns.txt。如果第二循环正在运行,我将读取Dep_Table_Columns.txt。请在Shell Script或linux中为我提供一些建议。

1 个答案:

答案 0 :(得分:0)

您不需要for循环。您要遍历文件中的所有行。例如

while IFS=\| read col1 col2 col3 etc; do 
   ...
done < text_file

在循环的主体中,变量$col1$col2$col3将分别包含第1列,第2列和第3列中的值。变量$etc将包含第4列及以后的列(如果有的话;您可能希望$etc是空字符串)。可以根据需要命名变量,最好使用描述列内容的名称。请注意,我们将IFS明确设置为使用|作为列分隔符,因为read在默认情况下会在空白处分割(取决于IFS的当前值)。