Tôi đã được giao nhiệm vụ với một cái gì đó khá đau đớn và tôi đã tự hỏi nếu có ai có thể giúp đỡ.Tước khối văn bản từ tập tin văn bản lớn
Nhà cung cấp của chúng tôi đã cung cấp tệp mib SNMP (txt). Rất tiếc, rất nhiều tệp này đã lỗi thời và cần được loại bỏ cho ứng dụng giám sát của chúng tôi.
Tôi đã cố gắng làm điều này bằng tay, nhưng nó dài hơn 800.000 dòng, và nó đang phá hỏng ý chí của tôi để sống.
Cấu trúc là một cái gì đó như:
-- /*********************************************************************************/
-- /* MIB table for Hardware */
-- /* Valid from: 543.44 */
-- /* Deprecated from: 600.3 */
-- /*********************************************************************************/
Some text
some text
Some text
-- /*********************************************************************************/
-- /* MIB table for Hardware */
-- /* Valid from: 543.44 */
-- /*********************************************************************************/
Some text
some text
Some text
-- /*********************************************************************************/
-- /* MIB table for Hardware */
-- /* Valid from: 364.44 */
-- /* Deprecated from: 594.3 */
-- /*********************************************************************************/
Tiếp xúc nhiều lần tại nauseum ngẫu nhiên và quảng cáo
Những gì tôi đang suy nghĩ, là một kịch bản đó sẽ:
tìm dòng chữ "Không được tán thành từ" rồi
delete that line,
delete the preceding 3 lines,
delete the following one line,
delete then all following lines until the next
"-- /*********************************************************************************/"
Điều này có hợp lý không? Điều này có thể xảy ra hay tôi chỉ mơ ước?
Thankyou!
Xóa từ 'Deprecated' đến'/** ... 'là khá dễ dàng, xóa 3 dòng trước đó có phần khó khăn hơn. – Kevin
Tôi nghĩ rằng việc xử lý điều này với sed hoặc awk sẽ sap _my_ sẽ sống. Perl hoặc một số ngôn ngữ khác cho phép bạn phân tích xung quanh ranh giới đường thẳng là một lựa chọn tốt hơn cho vấn đề này. –