作者 主題: 一個空白以上的正規表示  (閱讀 9193 次)

0 會員 與 1 訪客 正在閱讀本文。

essle9

  • 懷疑的國中生
  • **
  • 文章數: 80
    • 檢視個人資料
一個空白以上的正規表示
« 於: 2006-11-26 14:06 »
aaa
_:代表空白
1_This____is_a___test_file!!
2_]This___is__a____test_file!!
3_This_is_a______test_file!!
4_This__is_a_test_file!!
5_This__is_a___test_file!!

想變成

1,This,is,a,test,file!!
2,This,is,a,test,file!!
3,This,is,a,test,file!!
4,This,is,a,test,file!!
5,This,is,a,test,file!!

於是我下了
sed -n 's/[^$]+/,/gp' aaa
結果不行
當然還有其它的下法,像grep...可是重點是一個空白以上要怎麼表示阿
btw on bash...

阿!!po出之後才之知道原來我的空白會被吃掉

igt1257

  • 可愛的小學生
  • *
  • 文章數: 7
    • 檢視個人資料
Re: 一個空白以上的正規表示
« 回覆 #1 於: 2006-11-26 16:02 »
#awk -F " " '{print $1,$2,$3,$4,$5,$6}' aaa >bbb
#cat bbb | tr " " , >ccc

ccc的檔案就是你所要的內容!!

essle9

  • 懷疑的國中生
  • **
  • 文章數: 80
    • 檢視個人資料
一個空白以上的正規表示
« 回覆 #2 於: 2006-11-26 17:10 »
對哦 我怎麼忘了有tr這個簡單又好用方法
這的確可以解決我的問題
可是.....
在shell,一個空白以上的正規表示真的無法實現嗎?
另外,我想請問一下
#awk -F " " '{print $1,$2,$3,$4,$5,$6}' aaa
這裡是六個欄位所以寫到$6
如何動態配置檔案的最大欄位數k {print $1,$2,.....,$k}

thyme

  • 老人組
  • 俺是博士!
  • *****
  • 文章數: 1281
    • 檢視個人資料
一個空白以上的正規表示
« 回覆 #3 於: 2006-11-27 10:13 »
代碼: [選擇]

$ cat sed_space.data
1 This    is a   test file!!
2 ]This   is  a    test file!!
3 This is a      test file!!
4 This  is a test file!!
5 This  is a   test file!!
$ sed -r "s/[ ]+/,/g" sed_space.data
1,This,is,a,test,file!!
2,]This,is,a,test,file!!
3,This,is,a,test,file!!
4,This,is,a,test,file!!
5,This,is,a,test,file!!

James Wu

  • 鑽研的研究生
  • *****
  • 文章數: 683
    • 檢視個人資料
一個空白以上的正規表示
« 回覆 #4 於: 2006-11-27 12:48 »
$NF

essle9

  • 懷疑的國中生
  • **
  • 文章數: 80
    • 檢視個人資料
一個空白以上的正規表示
« 回覆 #5 於: 2006-11-28 23:06 »
James Wu大
$NF是指什麼?

mjabe

  • 憂鬱的高中生
  • ***
  • 文章數: 194
    • 檢視個人資料
    • http://home.so-net.net.tw/michtw
一個空白以上的正規表示
« 回覆 #6 於: 2006-11-29 23:14 »
引述: "essle9"
James Wu大
$NF是指什麼?



(gawk) NF Number of fields in the current record.

James Wu

  • 鑽研的研究生
  • *****
  • 文章數: 683
    • 檢視個人資料
一個空白以上的正規表示
« 回覆 #7 於: 2006-11-30 03:08 »
引述: "essle9"

另外,我想請問一下
#awk -F " " '{print $1,$2,$3,$4,$5,$6}' aaa
這裡是六個欄位所以寫到$6
如何動態配置檔案的最大欄位數k {print $1,$2,.....,$k}

請原諒我的懶惰
$NF 就是您需要的最大欄位數