Linux 在一个大文件中迭代很长的行

Linux 在一个大文件中迭代很长的行,linux,bash,shell,Linux,Bash,Shell,我不熟悉shell脚本。我正在尝试使用shell脚本在linux环境中迭代日志文件。这是我的密码: while read p; do head=${p:0:250} #some code here# done < ./log.txt 有没有一种方法可以在迭代时只得到一部分而不是整行?或者有没有其他更好的方法来实现我的目标 编辑: 当我使用-x运行脚本时,我看到脚本在read p处停止了一段时间,然后我收到了错误消息。我认为它试图在继续之前加载整个线路,这导致了问题 我将前250个字符

我不熟悉shell脚本。我正在尝试使用shell脚本在linux环境中迭代日志文件。这是我的密码:

while read p; do
 head=${p:0:250}
 #some code here#
done < ./log.txt
有没有一种方法可以在迭代时只得到一部分而不是整行?或者有没有其他更好的方法来实现我的目标

编辑:
当我使用
-x
运行脚本时,我看到脚本在
read p
处停止了一段时间,然后我收到了错误消息。我认为它试图在继续之前加载整个线路,这导致了问题

我将前250个字符分配给一个变量(
$head
),以便以后可以将该变量拆分为一个数组,并在迭代该数组时执行一些操作。我不需要变量,只要我可以从行中访问前250个字符


任何帮助都将不胜感激。多谢各位

在进入shell循环之前,最好将内容缩减到每行的前250个字符。您可以这样做,同时仍然保留循环中设置的变量的状态,通过:

#/usr/bin/env bash
而IFS=read-rp;做
:将处理“$p”的代码放在此处

完成<在进入shell循环之前,最好将内容缩减到每行的前250个字符。您可以这样做,同时仍然保留循环中设置的变量的状态,通过:

#/usr/bin/env bash
而IFS=read-rp;做
:将处理“$p”的代码放在此处

完成<可能是我们可以跳过分配可变部分,以防您可以让我们知道您在这里实际要做什么?将信息添加到问题中。谢谢@RavindersingH13在分配了变量后,我们可能会跳过它,在没有它的情况下执行任务。当我使用
-x
运行脚本时,我看到脚本在
read p
处停止了一段时间,然后我收到了错误消息。我认为它试图在继续之前加载整个线路,这导致了问题@RavinderSingh13@kvantour,我建议
而IFS=read-r head;做完成<可能是我们可以跳过分配可变部分,以防您可以让我们知道您在这里实际要做什么?将信息添加到问题中。谢谢@RavindersingH13在分配了变量后,我们可能会跳过它,在没有它的情况下执行任务。当我使用
-x
运行脚本时,我看到脚本在
read p
处停止了一段时间,然后我收到了错误消息。我认为它试图在继续之前加载整个线路,这导致了问题@RavinderSingh13@kvantour,我建议
而IFS=read-r head;做完成<
 xrealloc: cannot allocate 18446744071562068080 bytes (36864 bytes allocated)
#!/usr/bin/env bash

while IFS= read -r p; do
  : put your code for processing "$p" here
done < <(cut -c -250 ./log.txt)