Sublime bị sập vì tệp csv lớn trong khi chỉnh sửa nội dung bằng regex


1

Tôi có gần 1GB tệp csv và cần chỉnh sửa tệp đó bằng cách sử dụng regex và phải tìm và thay thế trên cao siêu bằng regex \=\\\" để tìm và =' để thay thế.

Tôi có thể làm điều đó từ việc kích hoạt tệp csv nhưng đó là quá trình mất thời gian. Nếu bất kỳ ai có ý tưởng để làm điều này bằng cách sử dụng cao siêu hoặc VIM hoặc bất kỳ cách nào khác thì đó sẽ là giúp đỡ cho tôi. Cảm ơn trước.


Tôi sẽ sử dụng một perl một lót như perl -ane 's/="/=\'/g;print' inputfile > outputfile
Toto

Bạn đã bao giờ xem xét đưa tất cả dữ liệu này vào cơ sở dữ liệu mà bạn có thể chạy truy vấn chưa?
cybernard

Câu trả lời:


2

Ok tôi có một giải pháp cho việc này bằng cách sử dụng python mã, hoạt động thành công cho tôi.

# import the modules that we need. (re is for regex)
import os, re

# set the working directory for a shortcut
os.chdir('/home/Desktop/python')

# open the source file and read it
fh = file('file.csv', 'r')
thetext = fh.read()
fh.close()

# create the pattern object. Note the "r". In case you're unfamiliar 
with Python
# this is to set the string as raw so we don't have to escape our 
escape characters

#match all the character you want to replace like below
p1 = re.compile(r'\=\\\"')

# do the replace
result = p1.sub("='", result)

# write the file
f_out = file('newfile.csv', 'w')
f_out.write(result)
f_out.close()

và lưu nó vào yourfilename.py

va cho ubuntu người dùng mở terminal và vào thư mục tập tin của bạn và chạy lệnh như

python ./yourfilename.py

cái này sẽ thay thế =" đến ='. Hy vọng điều này sẽ giúp ích cho người khác.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.