没有随忙箱而来的读取小程序。
有没有办法使用busybox逐行读取txt文件?
我现在拥有的是
while read line
do
echo $line
done < "$InputFile"
Run Code Online (Sandbox Code Playgroud)
Sté*_*las 13
read 是一个 shell 内置的(如果不是,它就不能设置一个 shell 变量)。
因此,如果您的 busyboxsh基于,则为ash:
while IFS= read -r line <&3; do
printf '%s\n' "$line"
done 3< "$InputFile"
Run Code Online (Sandbox Code Playgroud)
就像在任何 POSIX shell 中一样。但与任何 shell 一样,使用while read循环处理文本通常是不好的 shell 脚本实践。
以上,你需要:
IFS= 否则前导和尾随未转义空格和制表符将从行中剥离-r, 否则反斜杠将被视为转义字符并删除(除非已转义)printf, 不是echo这不适用于例如-nene"$line"引用 (not $line) 否则行的内容在空格和制表符上拆分,并扩展通配符模式。<&3并且3< ...,如果您需要访问循环中的原始标准输入。如果文件在最后一行之后包含字符并且您想显示它们,则可以在循环后添加:
[ -z "$line" ] || printf %s "$line"
Run Code Online (Sandbox Code Playgroud)
请注意,该循环无法处理二进制数据(NUL字符)。
| 归档时间: |
|
| 查看次数: |
9917 次 |
| 最近记录: |