欧美人两个人激情的免费视频_国产亚洲人成网站在线观看不卡_直接看毛片_免费乱理伦片在线观看app

十三年專注于網(wǎng)站建設(shè)與互聯(lián)網(wǎng)應(yīng)用開發(fā),低調(diào)、有情懷的網(wǎng)絡(luò)應(yīng)用服務(wù)商!
南昌百恒科技微信公眾號(hào) 掃一掃關(guān)注
tel-icon全國服務(wù)熱線:400-680-9298,0791-88117053
掃一掃關(guān)注百恒科技微信公眾號(hào)

利用sed編輯器工具刪除數(shù)據(jù)流空白行

百恒 2017-11-15 16:36:25 3423
? ? ? ?sed編輯器工具可以刪除數(shù)據(jù)流中不需要的空白行。刪除數(shù)據(jù)流中的所有空白行很容易,但要選擇性地刪除空白行則需要一點(diǎn)創(chuàng)造力。下面南昌網(wǎng)絡(luò)公司-百恒網(wǎng)絡(luò)將為大家介紹一些簡短的sed編輯器腳本,它們可以用來幫助刪除數(shù)據(jù)中不需要的空白行。?

? ? ? ?1. 刪除連續(xù)的空白行?
? ? ? ?數(shù)據(jù)文件中出現(xiàn)多余的空白行會(huì)非常讓人討厭。通常,數(shù)據(jù)文件中都會(huì)有空白行,但有時(shí)由于數(shù)據(jù)行的缺失,會(huì)產(chǎn)生過多的空白行。?

? ? ? ?刪除連續(xù)空白行的簡單辦法是用地址區(qū)間來檢查數(shù)據(jù)流,sed編輯器會(huì)對(duì)所有匹配指定地址區(qū)間的行執(zhí)行該命令。?

? ? ? ?刪除連續(xù)空白行的關(guān)鍵在于創(chuàng)建包含一個(gè)非空白行和一個(gè)空白行的地址區(qū)間。如果sed編輯器遇到了這個(gè)區(qū)間,它不會(huì)刪除行。但對(duì)于不匹配這個(gè)區(qū)間的行(兩個(gè)或更多的空白行),它會(huì)刪除這些行。?

? ? ? ?下面是完成這個(gè)操作的腳本。?
? ? ? ?/./,/^$/!d?

? ? ? ?區(qū)間是/./到/^$/。區(qū)間的開始地址會(huì)匹配任何含有至少一個(gè)字符的行。區(qū)間的結(jié)束地址會(huì)匹配一個(gè)空行。在這個(gè)區(qū)間內(nèi)的行不會(huì)被刪除。?

? ? ? ?下面是實(shí)際的腳本。?
? ? ? ?$ cat data8.txt?
? ? ? ?This is line one. ??
? ? ? ?This is line two. ?
? ? ? ?This is line three. ? ?
? ? ? ?This is line four.?
? ? ? ?$?
? ? ? ?$ sed '/./,/^$/!d' data8.txt?
? ? ? ?This is line one. ?
? ? ? ?This is line two. ?
? ? ? ?This is line three. ?
? ? ? ?This is line four.?
? ? ? ?$?

? ? ? ?無論文件的數(shù)據(jù)行之間出現(xiàn)了多少空白行,在輸出中只會(huì)在行間保留一個(gè)空白行。

? ? ? ?2. 刪除開頭的空白行?
? ? ? ?數(shù)據(jù)文件開頭有多個(gè)空白行時(shí)也很煩人。通常,在將數(shù)據(jù)從文本文件導(dǎo)入到數(shù)據(jù)庫時(shí),空白行會(huì)產(chǎn)生一些空項(xiàng),涉及這些數(shù)據(jù)的計(jì)算都得作廢。?

? ? ? ?刪除數(shù)據(jù)流頂部的空白行不難。下面是完成這個(gè)功能的腳本。?

? ? ? ?/./,$!d?

? ? ? ?這個(gè)腳本用地址區(qū)間來決定哪些行要?jiǎng)h掉。這個(gè)區(qū)間從含有字符的行開始,一直到數(shù)據(jù)流結(jié)束。在這個(gè)區(qū)間內(nèi)的任何行都不會(huì)從輸出中刪除。這意味著含有字符的第一行之前的任何行都會(huì)刪除。來看看這個(gè)簡單的腳本。?
? ? ? ?$ cat data9.txt ??
? ? ? ?This is line one. ?
? ? ? ?This is line two.?
? ? ? ?$?
? ? ? ?$ sed '/./,$!d' data9.txt?
? ? ? ?This is line one. ?
? ? ? ?This is line two.?
? ? ? ?$?
? ? ? ?測試文件在數(shù)據(jù)行之前有兩個(gè)空白行。這個(gè)腳本成功地刪除了開頭的兩個(gè)空白行,保留了數(shù)據(jù)中的空白行。
?
? ? ? ?3. 刪除結(jié)尾的空白行?
? ? ? ?很遺憾,刪除結(jié)尾的空白行并不像刪除開頭的空白行那么容易。就跟打印數(shù)據(jù)流的結(jié)尾一樣,刪除數(shù)據(jù)流結(jié)尾的空白行也需要花點(diǎn)心思,利用循環(huán)來實(shí)現(xiàn)。?
在開始討論前,先看看腳本是什么樣的。?

? ? ? ?sed '{?
? ? ? ?:start?
? ? ? ?/^n*$/{$d; N; b start }?
? ? ? ?}'?

? ? ? ?注意,在正常腳本的花括號(hào)里還有花括號(hào)。這允許你在整個(gè)命令腳本中將一些命令分組。該命令組會(huì)被應(yīng)用在指定的地址模式上。地址模式能夠匹配只含有一個(gè)換行符的行。如果找到了這樣的行,而且還是后一行,刪除命令會(huì)刪掉它。如果不是后一行,N 命令會(huì)將下一行附加到它后面,分支命令會(huì)跳到循環(huán)起始位置重新開始。?

? ? ? ?下面是實(shí)際的腳本。?
? ? ? ?$ cat data10.txt?
? ? ? ?This is the first line.?
? ? ? ?This is the second line. ? ?
? ? ? ?$ sed '{?
? ? ? ?> :start?
? ? ? ?> /^n*$/{$d ; N ; b start }?
? ? ? ?> }' data10.txt?
? ? ? ?This is the first line.?
? ? ? ?This is the second line.?
? ? ? ?$?
? ? ? ?這個(gè)腳本成功刪除了文本文件結(jié)尾的空白行。?

? ? ? ?關(guān)于利用sed編輯器工具來刪除數(shù)據(jù)流中不需要的空白行的方法就先介紹到這里,大家如有還有哪些不明白的地方,可來電和我們聯(lián)系,百恒網(wǎng)絡(luò)作為一家專業(yè)的南昌網(wǎng)絡(luò)公司,精通各種網(wǎng)絡(luò)技術(shù),而且經(jīng)驗(yàn)豐富,一定可以為您解除疑惑!
400-680-9298,0791-88117053
掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號(hào)

歡迎您的光顧,我們將竭誠為您服務(wù)×

售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售后服務(wù) 售后服務(wù)
 
備案專線 備案專線
 
售后服務(wù) 售后服務(wù)
 
×