我正在处理bash shell中的一些数据,需要使用sed / awk等来操作它,并且需要从奇数行中减去偶数行。
例如:
51202598
51204294
51370060
51371733
51535314
51536526
会变成:
1696
1673
1212
提前致谢。
答案 0 :(得分:7)
使用awk:
awk 'NR%2{p=$1;next}{print ($1-p)}' file
1696
1673
1212
答案 1 :(得分:3)
只是为了不使用awk的乐趣:
cat calc.data | paste - - | xargs -I{} echo {} "- _1 * p" | dc
甚至更短:
xargs -a calc.data -l2 printf "%s %s - _1 * p" | dc
sed
和bc
(通过glenn评论):
sed -n 'h;n;G;s,\n,-,;p' calc.data|bc
或单独使用dc
(但顺序相反):
dc -f calc.data -e '[-_1*pswz1<r]srz1<r'