日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Linux神器:使用SED過濾時(shí)間輕松搞定!(linuxsed過濾時(shí)間)

Linux神器:使用SED過濾時(shí)間輕松搞定!

目前創(chuàng)新互聯(lián)公司已為1000多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、綿陽服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、鳳陽網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

在日常工作中,我們往往需要處理大量的文本數(shù)據(jù)。其中,日期和時(shí)間這類數(shù)據(jù)占據(jù)了相當(dāng)重要的比例,比如日志文件中的時(shí)間戳、數(shù)據(jù)處理中的日期篩選、數(shù)據(jù)匹配中的時(shí)間范圍過濾等等。但是由于數(shù)據(jù)量巨大,手動(dòng)篩選和處理時(shí)常會引發(fā)疲勞和錯(cuò)誤,于是如何快捷高效地以文本處理方式搜索和提取其中的日期和時(shí)間成為了一項(xiàng)需求。

Linux操作系統(tǒng)的強(qiáng)大和靈活性使得其成為了一個(gè)非常適合進(jìn)行文本處理的平臺,其中SED是不可或缺的一個(gè)工具。SED是一種簡單但是功能非常強(qiáng)大的流編輯器,它的作用是根據(jù)一定的規(guī)則對指定的文本進(jìn)行處理和編輯。在文本處理種類繁多、需求不一的情況下,SED可以根據(jù)用戶的需要來制定相應(yīng)的規(guī)則,高效地完成文本處理和數(shù)據(jù)提取的任務(wù),從而極大地提高了工作效率。

在本文中,我們將探討如何使用SED過濾時(shí)間,介紹SED的基礎(chǔ)知識和具體操作步驟,以及介紹一些常用的SED規(guī)則和應(yīng)用案例。希望本文能夠?yàn)樽x者提供一些有用的提示和指南,幫助大家在日常工作中更加高效地完成文本處理任務(wù)。

一、SED基礎(chǔ)知識

SED是一款常用的行編輯器,主要用于對文本中的行進(jìn)行編輯和替換。它支持正則表達(dá)式的搜索和替換,可以靈活地處理大量的文本數(shù)據(jù)。當(dāng)然在sed處理過程中,我們對正則表達(dá)式的理解也是至關(guān)重要的。以下是一些在sed中經(jīng)常用到的正則表達(dá)式符號說明:

1. ^:匹配行的開始位置

2. $:匹配行的結(jié)束位置

3. .:匹配除了換行符之外的任意一個(gè)字符

4. *: 匹配零個(gè)或多個(gè)在它之前的字符

5. []:匹配其中的任何一個(gè)字符

6. \:轉(zhuǎn)義符號,用于表示正則表達(dá)式中的特殊字符

以上的這些符號都是sed中常用的正則表達(dá)式符號,掌握了它們之后我們就可以開始使用sed命令進(jìn)行文本處理了。

二、SED過濾時(shí)間

1. 過濾指定日期的文本

假設(shè)我們有一個(gè)文本文件file.txt,其中包含了多行數(shù)據(jù),每行數(shù)據(jù)的格式為“日期 加減時(shí)間點(diǎn)”,例如“20230101 120230”,我們希望提取所有2023年1月1日的數(shù)據(jù)。這時(shí)候我們可以使用sed命令中的正則表達(dá)式進(jìn)行匹配。具體來說,可以使用“^20230101”來匹配日期為2023年1月1日的數(shù)據(jù),使用“sed -n ‘/^20230101/p’ file.txt”即可。

2. 過濾某個(gè)時(shí)間點(diǎn)的文本

如果我們只需要提取文本中指定的時(shí)間點(diǎn)的數(shù)據(jù),我們可以使用sed命令結(jié)合正則表達(dá)式進(jìn)行匹配。例如我們需要提取出所有下午1點(diǎn)的數(shù)據(jù),可以使用“p.m. 01”進(jìn)行匹配,然后使用“sed -n ‘/p\.m\. 01/p’ file.txt”即可。

3. 過濾指定時(shí)間范圍內(nèi)的文本

有時(shí)候我們需要根據(jù)時(shí)間范圍來提取文本數(shù)據(jù)。例如我們需要提取文件file.txt中20230101到20231231之間的所有數(shù)據(jù),可以使用“sed -n ‘/^20230101/,/^20231231/p’ file.txt”命令對文本數(shù)據(jù)進(jìn)行提取。

4. 時(shí)間格式轉(zhuǎn)換

在日常工作中,我們不僅需要提取時(shí)間數(shù)據(jù),還可能需要對提取到的時(shí)間數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換。比如我們提取到了“20230101 120230”這樣的數(shù)據(jù),如果需要將其轉(zhuǎn)換為2023-01-01 12:00:00這樣的格式,可以使用sed命令結(jié)合正則表達(dá)式進(jìn)行替換。例如“sed ‘s/\(….\)\(..\)\(..\) \(..\)\(..\)\(..\)/\1-\2-\3 \4:\5:\6/’ file.txt”就可以完成上述任務(wù)。

SED提供了一種強(qiáng)大的文本處理工具,尤其在處理時(shí)間數(shù)據(jù)上具有很高的實(shí)用價(jià)值。它能夠幫助我們快速高效地處理文本數(shù)據(jù),提取需要的信息,為我們的工作帶來極大的便利。當(dāng)然,要熟練掌握SED也需要我們不斷的學(xué)習(xí)和實(shí)踐,只有在實(shí)踐中不斷試錯(cuò),才能讓我們的文本處理技巧更加?jì)故斓貞?yīng)用于我們的實(shí)際工作中。

相關(guān)問題拓展閱讀:

  • linux shell sed命令用法
  • Linux sed命令使用!

linux shell sed命令用法

s/::RE::/::DT::/::OPTION::

是這個(gè)語法…

sed替換命令的結(jié)構(gòu)為: s/A/B/

你在最后少了個(gè)斜杠/,結(jié)吵沖差構(gòu)不完整判納,會報(bào)升皮錯(cuò)。

修改為:

A=hello

ar=$(date “+%Y%m%d”)

echo A | sed “s/he/$Var/”

我注意到你結(jié)尾脊灶兄忘寫櫻襲斜杠了。

echo $A |  sed 辯答”s/he/$Var/”

$ echo $A | sed “s/he/$Var/游握孫”

llo

幫你試過了神鏈皮孝

linux之sed用法

sed是一個(gè)很好的文件處理工具,本身是一個(gè)管道命令,主要是以行為單位進(jìn)行處理,可以將數(shù)據(jù)行進(jìn)行替換、刪除、新增、選取等特定工作。

sed命令行格式為:

sed ‘command’ 輸入文本

常用選項(xiàng):

n∶使用安靜(silent)模式。在一般 sed 的用法中,所有來自 STDIN的資料一般都會被列出到螢?zāi)簧稀5绻由?-n 參數(shù)后,則只有經(jīng)過sed 特殊處理的那一行(或者動(dòng)作)才會被列出來。

e∶直接在指令列模式上進(jìn)行 sed 的動(dòng)作編輯;

f∶直接將 sed 的動(dòng)作寫在一個(gè)檔案內(nèi), -f filename 則可以執(zhí)行 filename 內(nèi)的sed 動(dòng)作;

r∶sed 的動(dòng)作支援的是延伸型耐嫌正規(guī)表示法的語法。(預(yù)設(shè)是基礎(chǔ)正規(guī)表示法語法)

i∶直接修改讀取的檔案內(nèi)容,而不是由螢?zāi)惠敵觥?/p>

常用命令:

a ∶新增, a 的后面可以接字串,而這些字串會在新的一行出現(xiàn)(目前的下一行)~

c ∶取代, c 的后面昌歷手可以接字串,這些字串可以取代 n1,n2 之間的行!

d ∶刪除,因?yàn)槭莿h除啊,所以 d 后面通常不接任何咚咚;

i ∶插入, i 的后面可以接字串,而這些字串會在新的一行出現(xiàn)(目前的上一行);

p ∶列印,亦即將某個(gè)選擇的資料印出。通常 p 會與參數(shù) sed -n 一起運(yùn)作~

s ∶取代,可以直接進(jìn)行取代的工作哩!通常這個(gè) s 的動(dòng)作可以搭配正規(guī)表示法!例如 1,20s/old/new/g 就是。

舉例:(假設(shè)我們有一文件名為ab)

刪除某行

# sed ‘1d’ ab#刪除之一行

# sed ‘$d’ ab#刪除最后一行

# sed ‘1,2d’ ab#刪除之一行到第二行

# sed ‘2,$d’ ab#刪除第二行到最后一行

  顯示某行

. # sed -n ‘1p’ ab#顯示之一行

# sed -n ‘$p’ ab#顯示最后一行

# sed -n ‘1,2p’ ab#顯示之一行到第二行

# sed -n ‘2,$p’ ab#顯示第二行到最后一行

  使用模式進(jìn)行查詢

# sed -n ‘/ruby/p’ ab #查詢爛悄包括關(guān)鍵字ruby所在所有行

# sed -n ‘/\$/p’ ab#查詢包括關(guān)鍵字$所在所有行,使用反斜線\屏蔽特殊含義

  增加一行或多行字符串

# cat ab

Hello!

ruby is me,welcome to my blog.

end

# sed ‘1a drink tea’ ab #之一行后增加字符串”drink tea”

Hello!

drink tea

ruby is me,welcome to my blog.

end

# sed ‘1,3a drink tea’ ab #之一行到第三行后增加字符串”drink tea”

Hello!

drink tea

ruby is me,welcome to my blog.

drink tea

end

drink tea

# sed ‘1a drink tea\nor coffee’ ab #之一行后增加多行,使用換行符\n

Hello!

drink tea

or coffee

ruby is me,welcome to my blog.

end

  代替一行或多行

# sed ‘1c Hi’ ab #之一行代替為Hi

Hi

ruby is me,welcome to my blog.

end

# sed ‘1,2c Hi’ ab#之一行到第二行代替為Hi

Hi

end

  替換一行中的某部分

  格式:sed ‘s/要替換的字符串/新的字符串/g’ (要替換的字符串可以用正則表達(dá)式)

# sed -n ‘/ruby/p’ ab | sed ‘s/ruby/bird/g’ #替換ruby為bird

  # sed -n ‘/ruby/p’ ab | sed ‘s/ruby//g’#刪除ruby

插入

# sed -i ‘$a bye’ ab#在文件ab中最后一行直接輸入”bye”

# cat ab

Hello!

ruby is me,welcome to my blog.

end

bye

sed 命令查找與替換:

(1)刪除第2,3行:sed ‘2,3d’ test.txt > new.txt

(2)替換:

替換所有:sed ‘s/abc/ABC/’ test.txt >new.txt

查找: sed -n “/abc/p” test.txt

匹配字符串中的一部分: echo abc123 | sed ‘s/\(*\).*/\1/’

echo “ab001_ac” | sed ‘s/\(.*\)\_\(.*\)/\1,\2/’ \1表示之一個(gè)括號匹配的字符

echo “ABC01” | sed “s/*\(*\)/\1/”\1匹配后面的數(shù)字部分

echo “ab001_AC88” | sed ‘s/*\(*$\)/\1/’

echo “a001_aaST88” | sed “s/\(.*\)\(\)\(*$\)/\2/”

sed “s/^/\”&/” 32.txt 行首添加雙引號

sed “s/$/\”&/” 33.txt 行尾添加雙引號

sed “s/*$//” 35.txt 替換行尾空格

只顯示指定行范圍的文件內(nèi)容,例如:

# 只查看文件的第100行到第200行

sed -n ‘100,200p’ mysql_slow_query.log

sed -n $n”p” 22.txt 顯示某一行 n=2

sed大小寫轉(zhuǎn)換?

如何先查找,再追加所查找的行到一個(gè)新的文件:

(3)查找Tab:

sed “s/\{2,\}/\|/g”查找Tab,查找多空格,單獨(dú)一個(gè)空格的除外

awk ‘/3\t/’ 34.txt 查找\t

sed -n ‘/3>/p’ 34.txt 查找空格

sed “/\\t/p” 34.txt 查找tab

echo “\tabc\t23” | sed ‘s/>/-/’ 替換tab

sed -n ‘/>*/p’ 34.txt 查找tab

如何只替換第2個(gè)\t?

(4)

行末空格

sed ‘s/*$//g’

(5)替找空格:

echo “abc 23” | sed ‘s/\{2,\}/ /’ 把多個(gè)空格替換成一個(gè)空格

(3)

如果你想在每行的80個(gè)字符后加一個(gè)冒號,你可寫:

sed ‘s/./&:/80’ new

你也可以以蠻力解決,如下:

sed ‘s/^……………………………………………………………………../&:/’ new

(4)找一個(gè)sed命令在文件每一行加一個(gè)變量的例子:

sed ‘s/.*/&-/’ new.txt

用&作為匹配的串

有時(shí)你想查找一個(gè)模式,然后加上幾個(gè)字符,比如在匹配的串前后加上括號。如果你是找一個(gè)確定的字符串,還是比較簡單的,如下即可:

sed ‘s/abc/(abc)/’ new

如果你不是非常清楚你將找到的是串是什么,那你應(yīng)該如果來利用你找到的串做某種替換呢?

答案就是你需要一個(gè)特定的字符”&”,它即指代匹配的模式

sed ‘s/*/(&)/’ new

你可以在替換時(shí)多次使用”&”,比如,你可以次每行開頭的數(shù)字復(fù)制一次,如下:

% echo “123 abc” | sed ‘s/*/& &/’

abc

讓我再修正一下這個(gè)例子,sed會以貪婪的方式匹配之一個(gè)串。對于’*’的之一個(gè)區(qū)配是之一個(gè)字符,因?yàn)檫@個(gè)正則是匹配0個(gè)或多個(gè)數(shù)字。所以如果輸入是”abc 123”,輸出也不會改變(當(dāng)然,除了有一個(gè)空格在字母之前)。一個(gè)能保證能匹配一個(gè)數(shù)字的更好的復(fù)制數(shù)字的方法是:

% echo “123 abc” | sed ‘s/*/& &/’

abc

(5)sed 中如何使用變量(變量使用單引號包起來):

echo “abc” | sed ‘s/ab/’$v’/’

如何在文件的每一行的最前面加一個(gè)字符串和空格!

sed ‘s/^/ttt /g’ test

如何在文件的每一行的最前面加一個(gè)字符串和空格!

sed ‘s/^/ttt /g tese | sed ‘s/$/ sss\&/g’

如何在文件的每一行的最前面加一個(gè)字符串和空格!

sed ‘s/^/ttt /g tese | sed ‘s/$/ sss\&/g’

(7)匹配空行:

查找空行:sed -n “/^$/p” 20.txt

刪除空行:sed “/^$/d” 21.txt

n 不打印; sed不寫編輯行到標(biāo)準(zhǔn)輸出,缺省為打印所有行(編輯和未編輯),p命令可以用來打印編輯行

c 下一命令是編輯命令,使用多項(xiàng)編輯時(shí)加入此選項(xiàng)

f 如果正在調(diào)用sed腳本文件,使用此選項(xiàng),此選項(xiàng)通知sed一個(gè)腳本文件支持所用的sed命令,如

sed -f myscript.sed input_file 這里myscript.sed即為支持sed命令的文件

(21) 只顯示指定行范圍的文件內(nèi)容,例如:

# 只查看文件的第100行到第200行

sed -n ‘100,200p’ mysql_slow_query.log

(22)退出狀態(tài)

sed不向grep一樣,不管是否找到指定的模式,它的退出狀態(tài)都是0。只有當(dāng)命令存在語法錯(cuò)誤時(shí),sed的退出狀態(tài)才不是0。

(23)y命令

該命令與UNIX/Linux中的tr命令類似,字符按照一對一的方式從左到右進(jìn)行轉(zhuǎn)換。例如,y/abc/ABC/將把所有小寫的a轉(zhuǎn)換成A,小寫的b轉(zhuǎn)換成B,小寫的c轉(zhuǎn)換成C。

sed ‘1,20y/hrwang12/HRWANG^$/’ datafile

#將1到20行內(nèi),所有的小寫hrwang轉(zhuǎn)換成大寫,將1轉(zhuǎn)換成^,將2轉(zhuǎn)換成$。

#正則表達(dá)式元字符對y命令不起作用。與s命令的分隔符一樣,斜線可以被替換成其它的字符。

(24)% echo “123 abc” | sed ‘s/*/& &/’

abc

字符串”abc”沒有改變,因?yàn)樗鼪]有匹配正則表達(dá)式,如果你想在輸出中刪除”abc”,你必須擴(kuò)展正則表達(dá)式來匹配行的其它的部分,并顯式地用”(”,”)”和”\1”來指名,這就是下節(jié)的內(nèi)容了。

用\1來指明匹配的部分

我已經(jīng)在正則表達(dá)式那一章中介紹了”(” ”)”和”\1”的用法?,F(xiàn)在復(fù)習(xí)一下,被轉(zhuǎn)義的括號(即,有反斜杠在前面的括號)來記錄正則表達(dá)的某一部分?!盶1”是被記錄的之一個(gè)模式,”\2”是第二個(gè)被記錄的模式。Sed可以記錄9個(gè)模式。

如果你想保存每行的之一個(gè)單詞,并刪除行的其它部分,你可以用下面的命令:

sed ‘s/\(\*).*/\1/’

我應(yīng)該再詳細(xì)地解釋一下。正則表達(dá)式是以貪婪的方式匹配。”*”匹配0個(gè)或多個(gè)小寫字母,它會盡量匹配更多的小寫字母?!?*”會在之一個(gè)匹配后匹配0個(gè)或多個(gè)字符。因?yàn)橹粋€(gè)模式已經(jīng)匹配了所有的小寫字母,第二個(gè)模式會匹配剩下的字符,所以你使用命令:

echo abcd123 | sed ‘s/\(*\).*/\1/’

會輸出”abcd”,而刪除后面的數(shù)字。

如果你想調(diào)換兩個(gè)單詞的位置,你可記錄兩個(gè)模式,并改變它們的次序。

sed ‘s/\(*\) \(*\)/\2 \1/’

注意兩個(gè)模式中間是有空格的。這個(gè)可保證找到兩個(gè)單詞。但是*這種模式會匹配0個(gè)字母,如果你想至少匹配一個(gè)字母,你可以用下面的命令:

sed ‘s/\(*\) \(*\)/\2 \1/’

“\1”并不需要一定出現(xiàn)在替換串中(右部),它你也可以在查找的模式中(左部)。如果你想刪除重復(fù)的單詞,你可以用:

sed ‘s/\(*\) \1/\1/’

Linux sed命令使用!

# sed

選項(xiàng)與參數(shù):

-n :使用安靜(silent)模式。在一般 sed 的用法中,所有來自 STDIN 的數(shù)據(jù)一般都會被列出到終端上。但如果加上 -n 參數(shù)后,則只有經(jīng)過sed 特殊處理的那一行(或者動(dòng)作)才會被列出來。

-e :直接在命令列模式上進(jìn)碼轎行 sed 的動(dòng)作編輯;

-f :直接將 sed 的動(dòng)作寫在一個(gè)文件內(nèi), -f filename 則可以運(yùn)行 filename 內(nèi)的 sed 動(dòng)作;

-r :sed 的動(dòng)作支持的是延伸型正規(guī)表示法的語法。(默認(rèn)是基礎(chǔ)正規(guī)表示法語法)

-i :直接修改讀森激取的文件內(nèi)容,而不是輸出到終端。

動(dòng)作說明: >function

n1, n2 :不見得會存在,一般代表『選擇進(jìn)行動(dòng)作的行數(shù)』,舉例來說,如果我的動(dòng)作是需要在 10 到 20 行之間進(jìn)行的,則『 10,20 』

function:

a :新增, a 的后面可以接字串,而這些字串會在新的一行出現(xiàn)(目前的此模襪下一行)~

linux sed過濾時(shí)間的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux sed過濾時(shí)間,Linux神器:使用SED過濾時(shí)間輕松搞定!,linux shell sed命令用法,Linux sed命令使用!的信息別忘了在本站進(jìn)行查找喔。

創(chuàng)新互聯(lián)網(wǎng)絡(luò)推廣網(wǎng)站建設(shè),網(wǎng)站設(shè)計(jì),網(wǎng)站建設(shè)公司,網(wǎng)站制作,網(wǎng)頁設(shè)計(jì),1500元定制網(wǎng)站優(yōu)化全包,先排名后付費(fèi),已為上千家服務(wù),聯(lián)系電話:13518219792


分享名稱:Linux神器:使用SED過濾時(shí)間輕松搞定!(linuxsed過濾時(shí)間)
網(wǎng)站鏈接:http://www.dlmjj.cn/article/cddeecc.html