优化壳一个衬里

时间:2010-12-27 09:54:44

标签: shell unix

需要优化UNIX shell一行

cat ${TEMPFILE} | cut -d ' ' -f1 | sed '/^$/d'| sed '1,4d'| sed 's/$/|ON_ICE|OFF_ICE/g' > ${MYREPORT}

因为这会导致性能问题。

4 个答案:

答案 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}