在 POSIX shell 中使用while 循环来处理文本通常被认为是不好的做法吗?
正如Stéphane Chazelas 所指出的,不使用 shell 循环的一些原因是概念、可靠性、易读性、性能和安全性。
这个答案解释了可靠性和易读性方面:
while IFS= read -r line <&3; do
printf '%s\n' "$line"
done 3< "$InputFile"
Run Code Online (Sandbox Code Playgroud)
为了性能,从文件或管道读取时,while循环和读取非常慢,因为内置的read shell一次读取一个字符。
怎么样的概念和安全性方面?
我想我的运气grep和sed,但不知何故,我不设法得到它的权利。
我有一个大约 8 GB 的日志文件。我需要分析 15 分钟的可疑活动时间段。我找到了我需要查看的日志文件部分,我正在尝试提取这些行并将其保存到一个单独的文件中。我如何在普通的 CentOS 机器上做到这一点?
我的最后一次尝试是这样,但没有奏效。当涉及到sed这些类型的命令时,我不知所措。
sed -n '2762818,2853648w /var/log/output.txt' /var/log/logfile
Run Code Online (Sandbox Code Playgroud)