在shell脚本中,如何遍历ASCII文件中的每一行并对其值执行操作
这是我有
的ASCII文件的示例23 3.4e-09 55.90 5.7e-07 24 12.5 79.90 7.9e-09 25 67.9 78.9 3.4e-09 26 98.8 89.67 9.7e-09
如何使用第一行和迭代......
WAT DO U MEAN BY LINE
答案 0 :(得分:3)
在Linux上使用bash,您可以使用read。它可能取决于您要使用的shell和版本。
“<”是重定向操作,它告诉shell从文件test.txt重定向stdin
有关详细信息,请参阅bash联机帮助页中SHELL BUILTIN COMMANDS下的read命令。
#!/bin/sh
while read line
do
echo "[" $line "]"
done < test.txt
答案 1 :(得分:1)
一种方式(至少在bash和ksh中,也可以在普通的sh中工作)是通过使用类似的东西:
while read line do ... done
但是,这会修改每一行的空格。如果行上有“足够固定”的格式(比如每行是ValA ValB ValC),您可以修改读取行以读取vala valb valc
答案 2 :(得分:1)
在Windows中,
解析文本字符串: 一串文本将被视为来自文件的单行输入,该字符串必须用双引号(或带有usebackq的单引号)括起来。
仅回显以下字符串中的日期
FOR /F "tokens=4 delims=," %%G IN ("deposit,$45.50,23.7,12-AUG-07") DO @echo Date paid %%G
从这里开始:for /f loop through text
答案 3 :(得分:0)
我怀疑即使你正确设置了循环并且间距总是相同的,你也会对这些值进行数学运算时遇到麻烦,因为那里有一些科学数字,比如3.4e-09。我怀疑脚本是设置为将其转换为实际值,它必须是双精度而不是整数。
不知道你的编程技巧是什么样的,但我个人会在一个程序中做到这一点。