我无法从写入的shell脚本中grep文件。以下是代码
#!/bin/bash
startline6=`cat /root/storelinenumber/linestitch6.txt`
endline6="$(wc -l < /mnt/logs/arcfilechunk-aim-stitch6.log.2017-11-08)"
awk 'NR>=$startline6 && NR<=$endline6' /mnt/logs/arcfilechunk-aim-stitch6.log.2017-11-08 | grep -C 100 'Error in downloading indivisual chunk' > /root/storelinenumber/error2.txt
虽然手动提供起始行和结束行号,但awk命令是独立工作的。
答案 0 :(得分:0)
语法有问题。最后一行被修改为
awk 'NR>='"$startline9"' && NR<='"$endline9"'' /mnt/logs/arcfilechunk-aim-stitch9.log | grep -C 100 'Error in downloading indivisual chunk' >> /root/storelinenumber/error.txt
它解决了这个问题。
答案 1 :(得分:0)
您在单引号内尝试了变量扩展,这意味着它们实际上不会 扩展。
将shell变量传递给awk
时,我更喜欢它们是实际的第一类awk
变量,因此我不必担心这类内容:
awk -vstl=$startline6 -vendl=$endline6 'NR>=stl && NR<=endl ...