[英]Cannot grep a file from one line number to another in shell script
我无法从编写的Shell脚本中复制文件。 下面是代码
#!/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命令是独立运行的。
语法有问题。 最后一行修改为
awk 'NR>='"$startline9"' && NR<='"$endline9"'' /mnt/logs/arcfilechunk-aim-stitch9.log | grep -C 100 'Error in downloading indivisual chunk' >> /root/storelinenumber/error.txt
它解决了问题。
您尝试在单引号内进行变量扩展,这意味着它们实际上不会被扩展。
当将shell变量传递给awk
,我更喜欢它们是实际的一流awk
变量,因此我不必担心这种事情:
awk -vstl=$startline6 -vendl=$endline6 'NR>=stl && NR<=endl ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.