ログファイルのデータを解析しようとしています。
以下はデータファイルです。
Data1
Data2
Data3
Data4
私のコードは次のとおりです。
data=$(cat datafile)
echo "$data" | while read line; read line1;
do
echo "$line and $line1"
done
私が望む出力は次のとおりです。
Data1 and Data2
Data2 and Data3
Data3 and Data4
しかし、私が得るものは次のとおりです。
Data1 and Data2
Data3 and Data4
私はなぜこのように振る舞うのか理解していますが、私が望む方法で何をすべきかわかりません。あなたはコツを知っている人ですか?
ありがとう
ベストアンサー1
while read
テキストを処理するためにシェルループを使用しないでください。ここで最も簡単なのは次のとおりですawk
。
awk 'NR > 1 {print prev, "and", $0}; {prev = $0}' < datafile
または以下を使用してsed
:
sed 'x; 1d; G; s/\n/ and /' < datafile