iT邦幫忙

0

txt資料整理

210128 0743 員工 x
210128 1202 員工 B
210128 0753 員工 x
210128 1202 員工 B

txt資料記錄
是否有辦法可以整理出所要的資訊?
只要保留最後有B的資料
excel或許還可以把B排序把相同的欄位集中
再刪除非B的行

dragonH iT邦超人 5 級 ‧ 2021-01-29 16:44:31 檢舉
python 的 pandas
不明 檢舉
如果習慣用excel的話,txt倒入excel後你想怎麼整理都可以XD

2 個回答

3
海綿寶寶
iT邦大神 1 級 ‧ 2021-01-29 16:50:54
最佳解答
WindowsOS>type aa.txt
210128 0743 員工 x
210128 1202 員工 B
210128 0753 員工 x
210128 1202 員工 B
WindowsOS>
WindowsOS>
WindowsOS>
WindowsOS>find "員工 B" aa.txt

---------- AA.TXT
210128 1202 員工 B
210128 1202 員工 B

WindowsOS>find "員工 B" aa.txt > bb.txt

WindowsOS>type bb.txt

---------- AA.TXT
210128 1202 員工 B
210128 1202 員工 B

WindowsOS>
看更多先前的回應...收起先前的回應...
hsiang11 iT邦好手 1 級 ‧ 2021-01-29 17:01:08 檢舉

大大解問題神速

hsiang11 iT邦好手 1 級 ‧ 2021-01-29 17:05:33 檢舉

再問"B 3"+"B 4"
有沒有辦法一起保留

微笑 iT邦新手 4 級 ‧ 2021-01-29 17:23:36 檢舉

"B 3"+"B 4"是甚麼,是說實際資料B後面還有東西嗎?
純文字判斷還是有點容易抓錯資料,資料複雜的時候會很麻煩

與其從txt中撈出想要的資料,建議找出文字檔共通的規則,統一打印到excel或sql上再處理才是好做法

'搜尋 B3 或 B4
findstr "B3 B4" aa.txt
hsiang11 iT邦好手 1 級 ‧ 2021-01-29 18:02:52 檢舉

用了比較笨的方式輸出
find "B 3" aa.TXT && find "B 4" aa.TXT
可以各自螢幕列出B3,B4
B 3
---------- aa.TXT
B 4
可是&&後無法輸出檔案

只好切成兩個檔案
find "B 3" aa.TXT >a.txt && find "B 4" aa.TXT >b.txt

再寫一次
因為這次是findstr不是 find

'搜尋 B3 或 B4
findstr "B3 B4" aa.txt > a.txt
0
japhenchen
iT邦大師 1 級 ‧ 2021-01-30 12:03:20

免寫程式的方法(如果一小串正則表達式能不算是寫程式的話)

在你的電腦安裝上VisualStudio Code (如果你有在用Notepad++或PSDEditor也都可以做以下置換的方法)

(VSCODE微軟出品,有中文界面,Windows/Linux/MAC都有,完全免費,我拿來取代Windows內建的孱弱NOTEPAD記事本)
https://code.visualstudio.com/

以下做法是把每一行的結尾不是B的全部換掉(不分大小寫)
1、開CODE,把你這個文字檔開進去
2、然後按下 CTRL + H 進入置換功能
3、把 ALT+R 或用滑鼠按啟用規則運算式功能
https://ithelp.ithome.com.tw/upload/images/20210130/201179544zOSs8FI5J.png
4、在上面那一行輸入

.*[^B]\s*\n*$

第二行置換成裡面留空,不用輸入任何東西
https://ithelp.ithome.com.tw/upload/images/20210130/20117954qvCkwdEAoU.png
5、按下 ALT+CTRL+ENTER 或用滑鼠按全部置換

搞定!

如果要正確一點,應該把第4步的那段正則表達式改一下,把結尾不是【員工 B】的全部換掉,因為你的題目的員工B中間有夾空白,所以我加了\s*(不管有沒有空白)處理

.*[^(員工\s*B)]\s*\n+

正則很重要,正則很重要,正則很重要,除了CODE,很多地方都有用到,包括WORD、EXCEL、程式語言C#、C++、PYTHON、PERL、PHP、JAVASCRIPT........(你不會就麻煩了)

打雜工 iT邦新手 3 級 ‧ 2021-01-30 12:35:19 檢舉

如果不會以上J大說的,會linux或許還可以稍微處理一下,linux上有許多指令+參數還是可以達到需要的效果

我要發表回答

立即登入回答