需要优化UNIX shell一行
cat ${TEMPFILE} | cut -d ' ' -f1 | sed '/^$/d'| sed '1,4d'| sed 's/$/|ON_ICE|OFF_ICE/g' > ${MYREPORT}
因为这会导致性能问题。
答案 0 :(得分:3)
只调用一次sed:
cat ${TEMPFILE}|cut -d ' ' -f1|sed '/^$/d;1,4d;s/$/|ON_ICE|OFF_ICE/g'>${MYREPORT}
答案 1 :(得分:1)
awk '/^$/ || ++count <= 4 {next} {print $1 "|ON_ICE|OFF_ICE"}' "$TEMPFILE" > "$MYREPORT"
答案 2 :(得分:0)
在
cat ${TEMPFILE} | cut -d ' ' -f1 | sed '/^$/d' | sed '1,4d' | sed 's/$/|ON_ICE|OFF_ICE/g' > ${MYREPORT}
显然你可以用尾巴+4
替换sed'1,4d'答案 3 :(得分:0)
使用awk如下:
awk '{$0=$1};if (NF>1){++rec}; if(NF > 1 && rec > 4 ){sub(/$/,"|ON_ICE|OFF_ICE")); print};' ${TEMPFILE} > ${MYREPORT}