PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 其他群組 > 七嘴八舌異言堂
帳戶
密碼
 

  回應
 
主題工具
lora
Major Member
 

加入日期: Jun 2001
您的住址: 台北
文章: 278
有啥文書軟體可以作到這兩點?

弄了老半天,都沒找出方法
只好在這請大家幫忙

第一個問題比較簡單
怎樣除去段與段之間的空行?

第二個就有點麻煩,想把別人的xtml資料擷取部份匯入但格式有點問題
<fasd=5 wed=red>一堆字</fasd>
變成
一堆字
<fasd=5 wed=red>一堆字</fasd>

大概有數萬筆要這樣作,所以不可能手動

有人知道如何作嗎?謝謝
     
      
舊 2009-07-24, 09:15 PM #1
回應時引用此文章
lora離線中  
u8526425
Elite Member
 

加入日期: Oct 2002
文章: 4,805
用"全部取代"不行嗎 ?
 
__________________
人性的醜陋就是,會在無權、無勢、善良的人身上挑毛病,卻在有權、有勢、缺德的人身上找優點。當無權、無勢、善良的人受到傷害的時候,還會站在所謂的道德制高點上,假惺惺地勸說無權、無勢、善良的人,一定要忍耐,一定要大度。
舊 2009-07-24, 09:25 PM #2
回應時引用此文章
u8526425離線中  
satai
Regular Member
 

加入日期: Feb 2003
文章: 66
第一個問題:

Shalom Txt(freeware)雖然只是一個小小的文字編輯器,可是他卻有獨特的功能:「刪除空白行」!

http://azo-freeware.blogspot.com/20...lom-txt-12.html
舊 2009-07-24, 10:03 PM #3
回應時引用此文章
satai離線中  
kiten
*停權中*
 
kiten的大頭照
 

加入日期: Apr 2005
文章: 17
引用:
作者lora
弄了老半天,都沒找出方法
只好在這請大家幫忙

第一個問題比較簡單
怎樣除去段與段之間的空行?

第二個就有點麻煩,想把別人的xtml資料擷取部份匯入但格式有點問題
<fasd=5 wed=red>一堆字</fasd>
變成
一堆字
<fasd=5 wed=red>一堆字</fasd>
大概有數萬筆要這樣作,所以不可能手動
有人知道如何作嗎?謝謝


請問您的空行有沒有Space,Tab等字元,如果都沒有任何字元的話
針對你的問題我解法如下,首先請先將檔案上傳至Unix like(如Linux)主機上可以存取的目錄(如/tmp),假定檔名為a.txt,輸出檔名為b.txt,所有檔案及工作目錄假定為/tmp
問題一解答
$gawk 'NF>0 {print }' a.txt > b.txt


問題二我個人的智慧也覺得解起來有麻煩,我獻醜一個小程式
$vi foo.py
f1為程式第一列
-----------------------
f1 = open('a.txt','r')
s = f1.read()
f1.close()
t = ""

flagSkip = False
for i in range(len(s)):
if s[i]=="<":
flagSkip = True
if s[i]==">":
flagSkip = False
continue
if flagSkip:
continue
t+=s[i]
print t
-----------------------
print t為程式最後一列

現在終於可以擺平第二題了
$ python foo.py > b.txt
舊 2009-07-24, 10:11 PM #4
回應時引用此文章
kiten離線中  
b4283
Regular Member
 
b4283的大頭照
 

加入日期: Jan 2004
文章: 83
第一個問題可以用 regexp + 任何一個好用的 editor 解決
(順便把 regexp 學了,對工作很有幫助)

第二個問題不是很懂
是說原本的資料是

<foo>bar</foo>

你要把它變成

bar
<foo>bar</foo>

是嗎?
舊 2009-07-24, 11:41 PM #5
回應時引用此文章
b4283離線中  
sazabijiang
*停權中*
 

加入日期: Sep 2004
您的住址: 台北
文章: 8
第一個問題可以用word的取代功能. 把 ^p^p 取代為 ^p 即可.

第二個問題看不懂. 重新匯入資料可嗎?

此文章於 2009-07-25 01:13 AM 被 sazabijiang 編輯.
舊 2009-07-25, 01:07 AM #6
回應時引用此文章
sazabijiang離線中  
shinnlu
Advance Member
 

加入日期: Jan 2003
文章: 335
兩個問題都可以用正規表示式來解決
但第一個用UltraEdit 之類的軟體比較簡單
用搜尋&取代的功能:搜尋 "^p^p",取代成 "^p"

第二個問題用正規表示式
搜尋: (<.*?>(.*?)</.*?>)
取代: $2\r\n$1

-----測試字串-----
<fasd=5 wed=red>一堆字</fasd><qwer=4 wed=pink>二堆字</fasd>
<abcd=3 wed=blue>三堆字</fasd>
-----取代結果-----
一堆字
<fasd=5 wed=red>一堆字</fasd>二堆字
<qwer=4 wed=pink>二堆字</fasd>
三堆字
<abcd=3 wed=blue>三堆字</fasd>
------------------

實際的語法在不同的工具裡會有一點差異.
舊 2009-07-25, 02:30 AM #7
回應時引用此文章
shinnlu離線中  
kiten
*停權中*
 
kiten的大頭照
 

加入日期: Apr 2005
文章: 17
引用:
作者shinnlu
兩個問題都可以用正規表示式來解決
但第一個用UltraEdit 之類的軟體比較簡單
用搜尋&取代的功能:搜尋 "^p^p",取代成 "^p"

第二個問題用正規表示式
搜尋: (<.*?>(.*?)</.*?>)
取代: $2\r\n$1

-----測試字串-----
<fasd=5 wed=red>一堆字</fasd><qwer=4 wed=pink>二堆字</fasd>
<abcd=3 wed=blue>三堆字</fasd>
-----取代結果-----
一堆字
<fasd=5 wed=red>一堆字</fasd>二堆字
<qwer=4 wed=pink>二堆字</fasd>
三堆字
<abcd=3 wed=blue>三堆字</fasd>
------------------

實際的語法在不同的工具裡會有一點差異.

樓主解法二我測試過確實可行,解得太漂亮了
正規表示法這方面我學得確實不到家
舊 2009-07-25, 01:06 PM #8
回應時引用此文章
kiten離線中  
wangks
Major Member
 
wangks的大頭照
 

加入日期: Mar 2002
您的住址: 高雄市
文章: 279
正規表示法
在WinBase下有類似的技術嗎?
__________________
在正確的時間, 正確的地點, 做正確的事
舊 2009-07-27, 01:43 AM #9
回應時引用此文章
wangks離線中  
f750502
New Member
 
f750502的大頭照
 

加入日期: Jan 2004
文章: 2
好強唷@@

沒想到取代這功能可以這樣使用...
舊 2009-07-27, 03:10 AM #10
回應時引用此文章
f750502離線中  


    回應


POPIN
主題工具

發表文章規則
不可以發起新主題
不可以回應主題
不可以上傳附加檔案
不可以編輯您的文章

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



所有的時間均為GMT +8。 現在的時間是04:24 AM.


vBulletin Version 3.0.1
powered_by_vbulletin 2025。