Linux從文件中提取特定內(nèi)容的實用技巧分享
引言
在日常數(shù)據(jù)處理和配置文件管理中,我們經(jīng)常需要從大型文件中提取特定內(nèi)容。
本文介紹的提取特定行技術(shù)正是這些高級操作的基礎(chǔ)。以提取含有"1"的簡單需求為例,我們可以掌握通用的文件處理模式。
1、方法一:使用 grep 命令
1.1 grep 命令基礎(chǔ)
grep(Global Regular Expression Print)是 Unix/Linux 系統(tǒng)中強大的文本搜索工具?;菊Z法為:
grep [選項] 模式 [文件...]
在我們的案例中,命令非常簡單:
grep "1" 111.yaml > new_file.yaml
1.2 命令詳解
"1":搜索模式,這里是要匹配的數(shù)字 1111.yaml:輸入文件>:重定向操作符new_file.yaml:輸出文件
1.3 高級用法
- 忽略大小寫:
grep -i "pattern" file - 顯示行號:
grep -n "1" 111.yaml - 反向匹配:
grep -v "1" 111.yaml(提取不含 1 的行) - 正則表達式:
grep "^1" 111.yaml(匹配以 1 開頭的行)
2、方法二:使用 Python 腳本
2.1 Python 實現(xiàn)解析
提供的 Python 腳本非常簡潔:
with open('111.yaml', 'r') as file, open('new_file.yaml', 'w') as new_file:
for line in file:
if '1' in line:
new_file.write(line)
2.2 代碼分步說明
文件操作:
open('111.yaml', 'r'):以只讀模式打開源文件open('new_file.yaml', 'w'):以寫入模式打開目標(biāo)文件with語句確保文件操作后自動關(guān)閉
逐行處理:
for line in file::迭代文件的每一行if '1' in line::檢查當(dāng)前行是否包含字符"1"
寫入匹配行:
new_file.write(line):將匹配行寫入新文件
2.3 增強版 Python 實現(xiàn)
更健壯的實現(xiàn)應(yīng)考慮以下方面:
try:
with open('111.yaml', 'r', encoding='utf-8') as file, \
open('new_file.yaml', 'w', encoding='utf-8') as new_file:
for line_number, line in enumerate(file, 1):
try:
if '1' in line:
new_file.write(line)
except UnicodeDecodeError:
print(f"編碼錯誤發(fā)生在第{line_number}行")
continue
except FileNotFoundError:
print("錯誤:輸入文件未找到")
except IOError as e:
print(f"文件操作錯誤: {e}")
到此這篇關(guān)于Linux從文件中提取特定內(nèi)容的實用技巧分享的文章就介紹到這了,更多相關(guān)Linux文件中提取特定內(nèi)容內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
CentOS設(shè)置靜態(tài)IP的方法總結(jié)
這篇文章主要介紹了CentOS設(shè)置靜態(tài)IP的方法總結(jié)的相關(guān)資料,需要的朋友可以參考下2017-06-06
Linux系統(tǒng)關(guān)機命令之間的區(qū)別及用法詳解
在本篇文章里小編給大家整理了一篇關(guān)于Linux系統(tǒng)關(guān)機命令之間的區(qū)別及用法詳解內(nèi)容,有需要的朋友們參考學(xué)習(xí)下。2020-12-12
Ubuntu服務(wù)器下搭建php運行環(huán)境的方法
這篇文章主要介紹了Ubuntu服務(wù)器下搭建php運行環(huán)境的方法,簡單分析了Ubuntu操作系統(tǒng)環(huán)境下搭建Apache、php及mysql模塊相關(guān)步驟、命令與操作技巧,需要的朋友可以參考下2018-04-04
運維工程師必備:Linux系統(tǒng)監(jiān)控與故障排查的命令大全
文章整理了Linux系統(tǒng)監(jiān)控命令,按功能分類并附使用示例,涵蓋了系統(tǒng)概覽、CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)、進程與服務(wù)、高級監(jiān)控工具等多個方面,需要的朋友可以參考下2025-12-12

