亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標題: 格式化輸入 [打印本頁]

作者: thinshootout    時間: 2009-06-10 12:12
標題: 格式化輸入
某文件如下輸入格式:

USERNAME           CLRID              MDN        LOGTIME       LOGTYPE   RESULT   ERRORID     REMARK
import2                                                  1243926419         1           2           110         Can not get MNID!
import2                   1                  2          1243926419         1           2           110         Can not get MNID!

其中以空格分割,而非tab,請問對于其中沒有值的字段,可否取得,比如第一行,希望$2="",$3="",而非$2="1243926419"(實際應該是$4,但由于FS=" ",造成被識別為分隔符)。

多謝~~~
作者: blackold    時間: 2009-06-10 12:13
標題: 回復 #1 thinshootout 的帖子
FS='[ ]'
作者: thinshootout    時間: 2009-06-10 12:34
標題: 回復 #2 blackold 的帖子
這樣的話,連$3 - $8也都變成了空……
作者: thinshootout    時間: 2009-06-10 12:37
標題: 回復 #2 blackold 的帖子
現(xiàn)在需要:$1="import2",$2="",$3="",$4="1243926419",$5="1",$6="2",$7="110",$8="Can not get MNID!"
作者: welcome008    時間: 2009-06-10 12:41
你這是定長格式?
作者: haimming    時間: 2009-06-10 12:45
先處理一下,將連續(xù)空格換其它字符
作者: greendays    時間: 2009-06-10 12:51
標題: 回復 #1 thinshootout 的帖子
awk '$1=$1' urf | sed 's/\(import2 \)\([0-9][0-9]\+\)/\1    \2/'
作者: kwokcn    時間: 2009-06-10 18:42
單單針對你這個例子:

  1. awk --posix -F" {3,20}" '{for(i=1;i<=NF;i++) printf $i" # ";print ""}' URFILE
復制代碼


其中,因為FS要用到正則,加上了--posix參數(shù);3和20是估測的,3為最小的間隔空格數(shù),20為最大的間隔空格數(shù)。




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2