1. sed -i 's/CANCEL_TIME/CANCEL_RECV_TIME/g' csv2drds-TF_B_PAYLOG_D.json
---指定文件替換,將文件中的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格式轉成utf8
-i選項是直接在文件中替換,不在終端輸出;
-r選項是所給的path中的目錄遞歸查找;
-l選項是輸出所有匹配到oldstring的文件;
s/表示替換
/g表示全局替換
② linux sed 替換
Linux sed 命令是利用腳本來處理文本文件。
sed 可依照腳本的指令來處理、編輯文本文件。
Sed 主要用來埋廳自動編輯一個或多個文件、簡化對文件的反復操作、編寫轉換程序等。
語法
參數說明:
regular_express.txt 文件內容如下:
利用 sed 將 regular_express.txt 內每一行結尾若為 . 則換成 !
:q:q
利用 sed 直接在 regular_express.txt 最後一行加入 # This is a test:
由於 $ 代表的是最後一行,而 a 的動作是新增,因此該文件最後新增 # This is a test!
sed 的 -i 選項慶液冊可以直接修改文件內容,這功能非常有幫助!舉例來說,如果你有一個 100 萬行的文件,你要在第 100 行加某些文字譽宏,此時使用 vim 可能會瘋掉!因為文件太大了!那怎辦?就利用 sed 啊!透過 sed 直接修改/取代的功能,你甚至不需要使用 vim 去修訂!
sed -i 常見用法(直接對文本文件進行操作的)
替換掉每行的第一個字元串
替換掉所有的字元串 sed -i 's/原字元串/新字元串/g' file
去掉 「行首」 帶「@」的首字母@
特定字元串的行前插入新行
特定字元串的行後插入新行
特定字元串的刪除
③ 總結linux替換字元串的幾種方法
一)通過vi編輯器來替換。
vi/vim 中可以使用 :s 命令來替換字元串。
:s/well/good/ 替換當前行第一個 well 為 good
:s/well/good/g 替換當前行所有 well 為 good
:n,$s/well/good/ 替換第 n 行開始到最後一行中每一行的第一個 well 為 good
:n,$s/well/good/g 替換第 n 行開始到最後一行中每一行所有 well 為 good
n 為數字,若 n 為 .,表示從當前行開始到最後一行
:%s/well/good/(等同於 :g/well/s//good/) 替換每一行的第一個 well 為 good
:%s/well/good/g(等同於 :g/well/s//good/g) 替換每一行中所有 well 為 good
可以使用 # 作為分隔符,此時中間出現的 / 不會作為分隔符
:s#well/#good/# 替換當前行第一個 well/ 為 good/
:%s#/usr/bin#/bin#g 可以把文件中所有路徑/usr/bin換成/bin
(二)直接替換文件中的字元串。(此法不用打開文件即可替換字元串,而且可以批量替換多個文件。)
1.perl命令替換,參數含義如下:
-a 自動分隔模式,用空格分隔$_並保存到@F中。相當於@F = split 」。分隔符可以使用-F參數指定
-F 指定-a的分隔符,可以使用正則表達式
-e 執行指定的腳本。
-i<擴展名> 原地替換文件,並將舊文件用指定的擴展名備份。不指定擴展名則不備份。
-l 對輸入內容自動chomp,對輸出內容自動添加換行
-n 自動循環,相當於 while(<>) { 腳本; }
-p 自動循環+自動輸出,相當於 while(<>) { 腳本; print; }
用法示例:
perl -p -i.bak -e 's/foo/bar/g' *.c
將所有C程序中的foo替換成bar,舊文件備份成.bak
perl -p -i -e "s/shan/hua/g" ./lishan.txt ./lishan.txt.bak
將當前文件夾下lishan.txt和lishan.txt.bak中的「shan」都替換為「hua」
perl -i.bak -pe 's/(d+)/ 1 + $1 /ge' file1 file2
將每個文件中出現的數值都加一
2.sed命令下批量替換文件內容
格式: sed -i "s/查找欄位/替換欄位/g" `grep 查找欄位 -rl 路徑` 文件名
-i 表示inplace edit,就地修改文件
-r 表示搜索子目錄
-l 表示輸出匹配的文件名
s表示替換,d表示刪除
示例:sed -i "s/shan/hua/g" lishan.txt
把當前目錄下lishan.txt里的shan都替換為hua 各個Linux詳細命令介紹及應用可如下進行查找
④ linux之文本內容替換命令sed
sed簡介:流編輯工具,用來對文本進行過濾與替換操作。
sed流程:sed通過一次僅讀取一行內容來對某些指令進行處理後輸出。
1、sed通過文件或管道讀取文件內容,但sed默認並不直接修改源文件,而是將讀入的內容復制到緩沖區中,稱之為模式空間。
2、所有的指令操作都是在模式空間找那個進行
3、sed根據相應的指令對模式空間中的內容進行處理並輸出結果,默認輸出至標准輸出(即屏幕上)。
sed基本語法格式:
用法:sed[選項]...{腳本指令}[輸入文件]...
選項: -version 顯示sed版本
-help :顯示幫助文檔
-n,-quiet,-silent靜默輸出,默認情況下,sed程序在所有的腳本指令執行完畢後,將自動列印模式空間中的內容。
-e script允許多個腳本指令被執行
-f script-file從文件中讀取腳本指令,對編寫自動化腳本程序很實用
-i ,-in-place 該選項直接修改源文件
-l N 該選項指定l指令可以輸出的行長度,l指令為輸出非列印字元。
-posix 禁用GNU sed擴展功能。
-r 在腳本指令中使用擴展正則表達式。
-s,-separate 默認情況下,sed將把輸入的多個文件名作為一個長的連續的輸入流。而GNU sed則允許把它們當作單獨的文件。
-u,-unbuffered 最低限度的緩存輸入與輸出
a,append表示追加指令;
i,insert表示插入指令;
d,delete表示刪除指令;
s,substitution表示替換指令。
sed腳本指令的基本格式是:
[地址,即路徑]命令(有些命令僅可以對一行操作,有些可以對多行操作),命令也可以用花括弧進行組合,使命令序列可以作用於同一個地址。
address{
command1
command2
command3
}
sed的基本工作方式是:
sed的替換命令s:
1、全局替換 : s/old/new/g ,其中g為全局替換,用於替換所有出現的次數; /如果和正則匹配的內容沖突可以使用其他符號,如 : s@old@new@g
2、標志位
為什麼要有多行模式: 配置文件一般有單行出現,但也有使用json或XML格式的配置文件,為多行出現。
多行模式處理命令N、D、P
⑤ Linux sed 命令詳解
sed命令行格式:sed [options] 'command' file(s)
options常用選項:
-n或--quiet或——silent:僅顯示script處理後的結果;
-e:以選項中的指定的script來處理輸入的文本文件;
-f:以選項中指定的script文件來處理輸入的文本文件;
-r∶sed 的動作支援的是延伸型正規表示法的語法;
-i∶直接修改讀取的檔案內容,而不是由螢幕輸出;
-h或--help:顯示幫助;
-V或--version:顯示版本信息。
Command常用命令:
a:新增,a 的後面可以接字元串,而這些字元串會在新的一行出現(目前的下一行);
c:取代,c 的後面可以接字元串,這些字元串可以取代 n1,n2 之間的行;
d:刪除,d 後面通常不接任何字元串;
i:插入,i 的後面可以接字元串,而這些字元串會在新的一行出現(目前的上一行);
p:列印,亦即將某個選擇的資料印出。通常 p 會與參數 sed -n 一起運作;
s:取代,可以直接進行取代的工作,通常與正規表達式搭配使用。
實例說明:
新增操作: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;
⑥ linux替換文件命令
1、這么就用不會提示了:#
\cp
-rf
2、
原因:
#
vi
~/.bashrc
如果你看到如下內容,以下命令都會用別名執行了,就是說自動加了
-i
參數:
alias
rm='rm
-i'
alias
cp='cp
-i'
alias
mv='mv
-i'
為了讓復制和移動大量文件去覆蓋目標時,不會產生一個個的提示,命令應該這樣寫
#
\cp
-rf
/data/xxx*
/home/xxx
注意
cp
命令前加了
\
,意思是不讓它用~/.bashrc里的別名運行,即
-i
參數
3、補充cp該命令的各選項含義如下
-
a
該選項通常在拷貝目錄時使用。它保留鏈接、文件屬性,並遞歸地拷貝目錄,其作用等於dpR選項的組合。
-
d
拷貝時保留鏈接。
-
f
刪除已經存在的目標文件而不提示。
-
i
和f選項相反,在覆蓋目標文件之前將給出提示要求用戶確認。回答y時目標文件將被覆蓋,是互動式拷貝。
-
p
此時cp除復制源文件的內容外,還將把其修改時間和訪問許可權也復制到新文件中。
-
r
若給出的源文件是一目錄文件,此時cp將遞歸復制該目錄下所有的子目錄和文件。此時目標文件必須為一個目錄名。
-
l
不作拷貝,只是鏈接文件。
4、需要說明的是,為防止用戶在不經意的情況下用cp命令破壞另一個文件,如用戶指定的目標文件名是一個已存在的文件名,用cp命令拷貝文件後,這個文件就會被新拷貝的源文件覆蓋,因此,建議用戶在使用cp命令拷貝文件時,最好使用i選項。
⑦ Linux下的shell編程 如何替換文件中的內容
可以這樣做:
方法1:sed -i 's/被替換的內容/要替換成的內容/' file
方法2:sed 's/被替換的內容/要替換成的內容/g' file > file.out;mv file.out file。
(7)linux命令替換擴展閱讀:
Shell編程的常用技巧:
一、自動補齊:在linux中對於命令或路徑,可以TAB鍵進行自動補全,以下事項需要注意:
1、只存在一個該輸入字元開頭的命令或路徑,此時自動補全;
2、存在多個該輸入字元開頭的命令或路徑,此時第一次點擊TAB鍵無效廳鍵中,此時再次點扮山擊TAB會羅列出所有該字元開頭的命令或路徑,繼續輸入直到僅僅剩一個時自動補全;
3、如果命令已經是完整的,TAB鍵則是本來的移動功能;而路徑的話要看命令自身的行為決定後續動作。
二、歷史命令
1、history命令可以顯示歷史執行過的命令;
2、使用!+序號執行該序號對應的命令;
3、使用!+字元執亮岩行該字元開頭的最後一次執行的指令。
三、命令別名
1、實現別名:alias ddd="df -Th";
2、刪除別名:unalias ddd;
3、顯示所有別名命令列表:alias;
4、存放位置:~/.bashrc (加入該文件後,重啟後不會消失)。
四、重定向
1、重定向標准輸入:< 命令接收輸入的途徑由鍵盤改為文件;
2、重定向標准輸出:> 將命令的執行結果輸出到指定文件,而不是直接顯示到屏幕;
3、重定向標准輸出:>> 將命令的執行結果追加輸出到指定文件;
4、重定向標准錯誤:2> 清除指定文件的內容,並把標准錯誤信息保存到指定文件;
5、重定向標准錯誤:2>> 標准錯誤信息追加到指定文件;
6、重定向標准輸出和標准錯誤:&> 將標准輸出、標准錯誤信息全部保存到指定文件,而不是直接顯示在屏幕上。
⑧ linux命令行替換文件內容
通過你的描述,替換命令如下:
1、tr 命令來進行替換
[root@localhost ss1]# tr '111' '2222222' < aa.txt
2、sed 命令
[root@localhost ss1]# sed 『s/wyf/wzw/g』 ./person.txt
這里使用sed 內置命令s 來實現替換功能,並且使用了全局替換標志g 表示替換文件中匹配wyf的所有字元串。
1、tr 命令在接文件時比較特殊,需要輸入重定向符號 「<」
2、凡是在文本中出現的「111」均應轉換成「222222」,而不是僅僅將單個進行轉換,這個要注意。
3、在使用sed 命令時,要注意一下語法格式,將要替換的文本「wyf」放在第一個和第二個「/」 之間,將替換後的文本「wzw」放到第二個和第三個「/」 之間。這個要注意。
以上就是我的回答,在具體操作時,可能會有出入,如有問題可私信+關注,我會第一時間來進行回復追答,希望我的回答能幫到你。