新聞中心
在Linux系統(tǒng)中,有時(shí)候我們需要從一個(gè)非常大的文件中讀取指定的行數(shù)據(jù)。如果手動(dòng)查找,可能會(huì)浪費(fèi)大量的時(shí)間,而且容易出錯(cuò)。因此,我們可以使用Shell腳本來(lái)實(shí)現(xiàn)自動(dòng)化的指定行讀取功能,這是一種簡(jiǎn)單易學(xué)的方法。

我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、成都做網(wǎng)站、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、福山ssl等。為近1000家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的福山網(wǎng)站制作公司
一、使用awk命令讀取指定行
awk是一種強(qiáng)大的文本處理工具,常常被用來(lái)在Linux系統(tǒng)中實(shí)現(xiàn)各種操作。其中一個(gè)常見(jiàn)的操作就是讀取指定行數(shù)據(jù)。比如我們有一個(gè)文件名為test.txt,內(nèi)容如下:
“`
line 1
line 2
line 3
line 4
line 5
“`
如果要讀取第3行的數(shù)據(jù),可以使用如下命令:
“`
awk ‘NR==3{print}’ test.txt
“`
這里NR表示當(dāng)前行號(hào),等于3的時(shí)候就打印出來(lái)。輸出結(jié)果如下:
“`
line 3
“`
二、使用sed命令讀取指定行
sed是一種流編輯器,也可以用來(lái)處理文本文件。如果要實(shí)現(xiàn)指定行讀取功能,可以使用以下命令:
“`
sed -n ‘3p’ test.txt
“`
這里的-n表示不打印原始數(shù)據(jù),‘3p’表示打印第3行。輸出結(jié)果如下:
“`
line 3
“`
三、使用head和tl命令讀取指定行
head和tl命令常常用來(lái)查看文件的頭部和尾部數(shù)據(jù),但是它們也可以用來(lái)讀取指定行數(shù)據(jù)。以下是使用head和tl命令讀取指定行的方法:
1.使用head和tl組合的方法,比如讀取第3行的數(shù)據(jù):
“`
head -n 3 test.txt | tl -n 1
“`
這里的head -n 3表示讀取前三行,而tl -n 1表示讀取最后一行。輸出結(jié)果如下:
“`
line 3
“`
2.使用sed命令和環(huán)形緩沖區(qū),比如讀取第3行的數(shù)據(jù):
“`
sed -n ‘3{p;q;}’ test.txt
“`
命令解析:讀取到第三行后,打印當(dāng)前行,接著退出命令。輸出結(jié)果如下:
“`
line 3
“`
:
Linux Shell實(shí)現(xiàn)指定行讀取功能非常簡(jiǎn)單,我們可以選擇awk、sed、head和tl等命令來(lái)操作。這些命令不僅使用簡(jiǎn)單,而且可以相對(duì)簡(jiǎn)潔地實(shí)現(xiàn)指定行讀取的功能。無(wú)論在工作環(huán)境還是個(gè)人學(xué)習(xí)中,都是非常有用的技能。
相關(guān)問(wèn)題拓展閱讀:
- linux shell 如何把txt文本中每一行提取出來(lái)賦值給一變量,再輸出這一變量
- 何如利用linux shell 腳本實(shí)現(xiàn)從不同文件中提取某一列或多列組成新文件
- linux shell 腳本如何添加文本到指定行
linux shell 如何把txt文本中每一行提取出來(lái)賦值給一變量,再輸出這一變量
利用慎臘碼sed命令和while語(yǔ)句
x=sed -n “$n p” 123.txt (x為變量n 為要讀局畢取的某寬哪一行)
何如利用linux shell 腳本實(shí)現(xiàn)從不同文件中提取某一列或多列組成新文件
樓主可以用cut命令實(shí)現(xiàn)。
我先編輯了兩個(gè)文件a,b,內(nèi)容如下
aaa:bbb:ccc
ddd:eee:fff
b文件內(nèi)容如下:
AAA:BBB:CCC
DDD:EEE:FFF
如果想把a(bǔ),b中第1,3字段提取出來(lái)輸出到c文件中,則可這樣實(shí)現(xiàn):
cat a b | cut -d ‘:’ -f 1,3 > c
(解釋:-d 后接
分隔符
,這里為冒號(hào),也可以為其他的,看你的具體文件; -f 依據(jù)-d分隔符將得到的數(shù)個(gè)字段的第幾字段提取出來(lái),這里是提取第1,3字段)
運(yùn)行結(jié)果:(c文件里的內(nèi)容)
aaa:ccc
ddd:fff
AAA:CCC
DDD:FFF
當(dāng)然這里有一個(gè)限制就是要好統(tǒng)一的分隔符“:”,這是這個(gè)命令的不足之處。
肯定還會(huì)有其他好的方法,不過(guò)我目前就只知道這么多了。
假設(shè)不同文件的名字是 1.txt 2.txt 3.txt
你需要提取的行含有的關(guān)鍵字是:keyword
新文件的名字是new.txt
那么,運(yùn)行: cat 1.txt 2.txt 3.txt | grep -i keyword >new.txt
這樣就可以得到你想要的文件以及內(nèi)容。
假設(shè)兩個(gè)文件名為f1,f2。新文件為f3,分隔符為逗號(hào)
#!/bin/bash
TEXT1=`cat “f1″`
TEXT2=`cat “f2″`
RESULT1=`echo “$TEXT1″ | awk ‘BEGIN {FS=”,”}{print $1}’`
RESULT2=`echo “$TEXT2″ | awk ‘BEGIN {FS=”,”}{print $2}’`
RESULT3=`echo “$TEXT1″ | awk ‘BEGIN {FS=”,”}{print $3}’`
echo “$RESULT1” > “f3”
echo “$RESULT2” > “f3”
echo “$RESULT3” > “f3”
exit 0
一般用awk 提取列
linux shell 腳本如何添加文本到指定行
sed -i ‘5a文本’ 文件名
在第五行添加文本
linux shell 讀取指定行的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux shell 讀取指定行,Linux Shell實(shí)現(xiàn)指定行讀取簡(jiǎn)單易學(xué),linux shell 如何把txt文本中每一行提取出來(lái)賦值給一變量,再輸出這一變量,何如利用linux shell 腳本實(shí)現(xiàn)從不同文件中提取某一列或多列組成新文件,linux shell 腳本如何添加文本到指定行的信息別忘了在本站進(jìn)行查找喔。
創(chuàng)新互聯(lián)服務(wù)器托管擁有成都T3+級(jí)標(biāo)準(zhǔn)機(jī)房資源,具備完善的安防設(shè)施、三線及BGP網(wǎng)絡(luò)接入帶寬達(dá)10T,機(jī)柜接入千兆交換機(jī),能夠有效保證服務(wù)器托管業(yè)務(wù)安全、可靠、穩(wěn)定、高效運(yùn)行;創(chuàng)新互聯(lián)專注于成都服務(wù)器托管租用十余年,得到成都等地區(qū)行業(yè)客戶的一致認(rèn)可。
分享題目:LinuxShell實(shí)現(xiàn)指定行讀取簡(jiǎn)單易學(xué)(linuxshell讀取指定行)
分享路徑:http://fisionsoft.com.cn/article/cocgdig.html


咨詢
建站咨詢
