1. sed -i 's/CANCEL_TIME/CANCEL_RECV_TIME/g' csv2drds-TF_B_PAYLOG_D.json
創(chuàng)新互聯(lián)公司是一家專業(yè)提供泗洪企業(yè)網(wǎng)站建設(shè),專注與做網(wǎng)站、成都做網(wǎng)站、H5網(wǎng)站設(shè)計、小程序制作等業(yè)務(wù)。10年已為泗洪眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進行中。
---指定文件替換,將文件中的CANCEL_TIME替換成CANCEL_RECV_TIME;
2.?sed -i 's/CANCEL_TIME/CANCEL_RECV_TIME/g' `grep CANCEL_TIME -rl ./*TF_B_PAYLOG_D*.json`
---批量文件替換,遞歸查找含CANCEL_TIME的文件,將所有文件中的CANCEL_TIME替換成CANCEL_RECV_TIME;
3. sed -i 's/\/tmp\/ditagent\/TF_B_PAYLOG_D.csv/\/vdata\/datapre\/281\/'"$filename"'/g' $jsonname
---帶/的字符串替換,將/tmp/ditagent/TF_B_PAYLOG_D.csv替換成/vdata/datapre/281/'"$filename"'
4.?sed -i 's/^/beginstring/g' *.txt
---在所有行首添加字符串;
5.??sed -i 's/$/endstring/g' *.txt
---在所有行末添加字符串
6. sed -i '2s/原字符串/替換字符串/g' *.txt
---替換第2行
7. sed -i?'$s/原字符串/替換字符串/g'?*.txt
---替換最后一行
8. sed?-i? '2,5s/原字符串/替換字符串/g'?*.txt
---替換2到5行
9. sed -i? '2,$s/原字符串/替換字符串/g'?*.txt
---替換2到最后一行
10. sed 's/\x80/|/g' test.dat |iconv -f gbk -t utf-8 testutf8.dat
---把test.dat中的歐元符號替換成豎線,再將文件gbk格式轉(zhuǎn)成utf8
-i選項是直接在文件中替換,不在終端輸出;
-r選項是所給的path中的目錄遞歸查找;
-l選項是輸出所有匹配到oldstring的文件;
s/表示替換
/g表示全局替換
sed簡介:流編輯工具,用來對文本進行過濾與替換操作。
sed流程:sed通過一次僅讀取一行內(nèi)容來對某些指令進行處理后輸出。
1、sed通過文件或管道讀取文件內(nèi)容,但sed默認(rèn)并不直接修改源文件,而是將讀入的內(nèi)容復(fù)制到緩沖區(qū)中,稱之為模式空間。
2、所有的指令操作都是在模式空間找那個進行
3、sed根據(jù)相應(yīng)的指令對模式空間中的內(nèi)容進行處理并輸出結(jié)果,默認(rèn)輸出至標(biāo)準(zhǔn)輸出(即屏幕上)。
sed基本語法格式:
用法:sed[選項]...{腳本指令}[輸入文件]...
選項: -version 顯示sed版本
-help :顯示幫助文檔
-n,-quiet,-silent靜默輸出,默認(rèn)情況下,sed程序在所有的腳本指令執(zhí)行完畢后,將自動打印模式空間中的內(nèi)容。
-e script允許多個腳本指令被執(zhí)行
-f script-file從文件中讀取腳本指令,對編寫自動化腳本程序很實用
-i ,-in-place 該選項直接修改源文件
-l N 該選項指定l指令可以輸出的行長度,l指令為輸出非打印字符。
-posix 禁用GNU sed擴展功能。
-r 在腳本指令中使用擴展正則表達式。
-s,-separate 默認(rèn)情況下,sed將把輸入的多個文件名作為一個長的連續(xù)的輸入流。而GNU sed則允許把它們當(dāng)作單獨的文件。
-u,-unbuffered 最低限度的緩存輸入與輸出
a,append表示追加指令;
i,insert表示插入指令;
d,delete表示刪除指令;
s,substitution表示替換指令。
sed腳本指令的基本格式是:
[地址,即路徑]命令(有些命令僅可以對一行操作,有些可以對多行操作),命令也可以用花括號進行組合,使命令序列可以作用于同一個地址。
address{
command1
command2
command3
}
sed的基本工作方式是:
sed的替換命令s:
1、全局替換 : s/old/new/g ,其中g(shù)為全局替換,用于替換所有出現(xiàn)的次數(shù); /如果和正則匹配的內(nèi)容沖突可以使用其他符號,如 : s@old@new@g
2、標(biāo)志位
為什么要有多行模式: 配置文件一般有單行出現(xiàn),但也有使用json或XML格式的配置文件,為多行出現(xiàn)。
多行模式處理命令N、D、P
grep、sed、awk是linux功能非常強大的三個命令,grep是查找過濾文本,sed是對文本進行編輯替換,awk是對文本進行分析報告。
最簡單的理解就是找什么東西用grep,想修改什么內(nèi)容用sed,想格式化內(nèi)容用awk。
創(chuàng)建一個文件名為grep_text.txt的文件,并放入內(nèi)容:
SillyMadman is both a madman and a fool.
Everyone agrees with this sentence.
我要查找在grep_text.txt文件里有Silly的行
命令是: grep Silly grep_text.txt
會返回內(nèi)容:SillyMadman is both a madman and a fool.
也可以帶以下參數(shù),這些我認(rèn)為可能容易用到的參數(shù),其它的參數(shù)需要另行查找
文檔,比如可以使用正則進行匹配。
內(nèi)容相關(guān)的
-B, --before context=NUM顯示所在行之前的行數(shù)
-A, --after context=NUM顯示所在行之后的行數(shù)
-C, --context=NUM打印輸出上下文的行數(shù)
過濾內(nèi)容相關(guān)的參數(shù):
-i, --忽略大小寫區(qū)分
-w,--匹配查找的整個單詞
-x,--匹配查找的整行文本
-v, --過濾掉匹配的內(nèi)容
輸出內(nèi)容相關(guān)的參數(shù)
-n, --行號打印帶有輸出行的行號
比如,我要查找在grep_text.txt文件里不區(qū)分大小寫查找sillymadman,并顯示行號和匹配文本的下一行,那么我可以用以下命令查找
grep sillymadman grep_text.txt -i -n -A1
內(nèi)容返回為
1:SillyMadman is both a madman and a fool.
2-Everyone agrees with this sentence.
總體而言grep的使用方式就是
grep [參數(shù)...](查找的內(nèi)容) (文件名)
grep也經(jīng)常搭配管道符號"|"使用,比如我要查詢某程序的進程,并去掉查找進程本身,那么命令為
ps -ef | grep program_name | grep -v grep
再創(chuàng)建一個文件名為sed_text.txt的文件,并放入內(nèi)容:
SillyMadman is both a madman and a fool.
Everyone agrees with this sentence.
我想要在第一行下面添加一句:woshishazi
命令是:sed '1a\woshishazi' sed_text.txt
返回內(nèi)容為:
SillyMadman is both a madman and a fool.
woshishazi
Everyone agrees with this sentence.
但是以上這個命令不會修改原文件,如果需要,需要加上-i
sed -i '1a\woshishazi' sed_text.txt
上面a是代表append,從指定行后面新的一行添加數(shù)據(jù),還有其他操作
操作有以下這些
a :從下面一行新增
i :從上面一行插入,
d :刪除
c :整行替換
p :打印
s :對指定內(nèi)容進行替換
下面稍微舉下例:
a: sed '1a\woshishazi' sed_text.txt 從第一行后面添加
i: sed '1i\woshishazi' sed_text.txt 從第一行前面插入
d: sed '1d' sed_text.txt 刪除第一行
c: sed '1c\woshishazi' sed_text.txt 替換第一行內(nèi)容為woshishazi
p: sed -n '1p' sed_text.txt 打印第一行,一般搭配-n使用,其他內(nèi)容就不會再展示
s:這個相對復(fù)雜一點需要詳細(xì)說明一下
sed的參數(shù)為 '[行]s/要被替換的內(nèi)容/新的內(nèi)容/g'
行是一個可選項,可以選擇具體的行進行替換
g代表替換所有匹配到的內(nèi)容,也可以改為數(shù)字,表示第幾次匹配到時進行替換
sed 's\SillyMadman\shafengzi\g' sed_text.txt ,將所有SillyMadman替換為shafengzi
輸出結(jié)果為:
shafengzi is both a madman and a fool.
Everyone agrees with this sentence.
最后再創(chuàng)建一個文件名為awk_text.txt的文件,并放入內(nèi)容:
1 a
2 b
3 c
4 d
5 f
以空白符作為分隔符這個文本相當(dāng)于每一行有兩個字段。
那么打印第一個字段時 awk '{print 0的話,則代表打印所有字段
awk默認(rèn)以空白符作為分隔符,也可以指定分割符通過-F
awk -F: '{print $1}' awk_text.txt,以“:”作為作為分隔符
那么返回內(nèi)容就為
1 a
2 b
3 c
4 d
5 f
相當(dāng)于只有一列或者說一個字段
然后還可以對前面加上一個正則對行進行匹配內(nèi)容
awk '/a/{print 2 ~ /a/){print $1}' awk_text.txt
返回內(nèi)容為
1
Sed是一項Linux指令,全稱是Stream
EDitor,功能同awk類似,差別在于,sed簡單,對列處理的功能要差一些,awk的功能復(fù)雜,對列處理的功能比較強大。Sed主要用于自動編輯一個或者多個文件,多用于腳本中對文件的處理。
Sed命令可以對文件進行增加、刪除、修改和查找操作,所以學(xué)好sed命令是寫自動化腳本必須的基礎(chǔ)之一。
sed命令行格式:sed [options] 'command' file(s)
options常用選項:
-n或--quiet或——silent:僅顯示script處理后的結(jié)果;
-e:以選項中的指定的script來處理輸入的文本文件;
-f:以選項中指定的script文件來處理輸入的文本文件;
-r∶sed 的動作支援的是延伸型正規(guī)表示法的語法;
-i∶直接修改讀取的檔案內(nèi)容,而不是由螢?zāi)惠敵?
-h或--help:顯示幫助;
-V或--version:顯示版本信息。
Command常用命令:
a:新增,a 的后面可以接字符串,而這些字符串會在新的一行出現(xiàn)(目前的下一行);
c:取代,c 的后面可以接字符串,這些字符串可以取代 n1,n2 之間的行;
d:刪除,d 后面通常不接任何字符串;
i:插入,i 的后面可以接字符串,而這些字符串會在新的一行出現(xiàn)(目前的上一行);
p:列印,亦即將某個選擇的資料印出。通常 p 會與參數(shù) sed -n 一起運作;
s:取代,可以直接進行取代的工作,通常與正規(guī)表達式搭配使用。
實例說明:
新增操作:a命令
sed '/^bird/a\test' file將test追加到 以bird開頭的行后面
刪除操作:d命令
sed '/^$/d' file #刪除空白行;
sed '2d' file #刪除第二行;
sed '2,$d' file #刪除第2行到最后一行;
sed '$d' file #刪除最后一行;
sed '/^bird/'d file #刪除所有開頭是bird的行;
插入操作:i命令
sed -i '3i\bird ' bird.conf #在bird.conf文件第3行之前插入bird
替換文本中的字符串:s命令
sed 's/bird/birds/' file #將文本中的bird替換成birds;
sed -i 's/ bird / birds /g' file #將file文件中每一行的第一個bird替換為birds;
標(biāo)題名稱:linux基礎(chǔ)命令sed linux基礎(chǔ)命令操作實驗結(jié)果分析
本文鏈接:http://aaarwkj.com/article44/hhpsee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、建站公司、品牌網(wǎng)站設(shè)計、、關(guān)鍵詞優(yōu)化、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)