Bash unix命令从服务器grep文本并将其写入unix中的文件

Bash unix命令从服务器grep文本并将其写入unix中的文件,bash,shell,unix,scripting,Bash,Shell,Unix,Scripting,下面我必须使用unix box服务器上的脚本来完成。 我想从服务器日志文件夹中的日志文件中grep文本(例如,Some_ID=123456)。 并且希望用c创建数据并将其写入另一个文本文件,该文件也将出现在同一台服务器上。 我从谷歌得到了下面的代码。我开始学习unix mylogfilename="/path/mybiglogfilename" my_id="000000000000000" cat -n "${mylogfilename}" | grep "${my_id}" | awk '

下面我必须使用unix box服务器上的脚本来完成。 我想从服务器日志文件夹中的日志文件中grep文本(例如,
Some_ID=123456
)。 并且希望用c创建数据并将其写入另一个文本文件,该文件也将出现在同一台服务器上。 我从谷歌得到了下面的代码。我开始学习unix

mylogfilename="/path/mybiglogfilename"

my_id="000000000000000"
cat -n "${mylogfilename}" | grep "${my_id}" | awk '{print $1,$2}'| while read mylineno mydata
do
      mylineno_before=`expr ${mylineno} - 1`
      mylineno_after=`expr ${mylineno} + 1`
      sed -n "${mylineno_before},${mylineno_after} p" ${mylogfilename}
done

有谁能帮我解决同样的问题。

这看起来像是许多管道,用于
awk
可能单独处理的东西。提供一个示例输入和所需的输出怎么样?事实上,它看起来像是你重新发明了
grep-C1“$my_id”“$mylogfilename”
做了两遍,第一遍获得你已经找到的行的行号,以便在第二遍打印它们,这通常是一个灾难性的反模式。您发现此代码的站点可能不应用于学习正确的shell脚本实践。