書かれたシェルスクリプトからファイルをgrepできません。コードは以下の通りですシェルスクリプト内のある行番号から別の行番号にファイルを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コマンドは、開始行番号と終了行番号が手動で指定されている場合でもスタンドアロンで動作します。
代わりに何が起こっているのか?手動で開始行または終了行のいずれかの番号を渡してみましたか?上記を使用してもう1つを決定しましたか?あなたはそれを開始または終了のどちらかに絞り込むことができますか? – SpoonMeiser
以下のコマンドを手動で実行するのと同じです。 awk 'NR> = 0 && NR <= 1000' /mnt/logs/arcfilechunk-aim-stitch6.log.2017-11-08 | grep -C 100 '個々のチャンクをダウンロードする際にエラーが発生する>> /root/storelinenumber/error2.txt 期待どおりの出力が得られました。しかし、私が動的に開始点と終了点を渡したシェルスクリプトは、error2.txtファイルに出力されていません。 –
その理由は何ですか? grepにパイプしないと、出力が出ないのですか?間違った行? 'echo $ startline6'と' echo $ endline6'はあなたが期待する出力を与えますか? – SpoonMeiser