linux替換
Ⅰ linux替換原來文件的命令
可以使用 Linux 系統的拷貝命令 cp,對原來的文件進行替換。例如:
$cp newfile oldfile
該命令的作用就是使用現在 newfile 的內容,替換掉原來 oldfile 的內容。
Ⅱ linux裡面怎麼樣替換文件夾
直接 cp 就完了啊。
假設你要用文件夾B中的文件去覆蓋文件夾A中的文件,不同名的文件都保留,那命令就是:cp -r B/* A
Ⅲ Linux文件名替換
1.用for靈活,文件名中字元替換,加日期等都可
先用下面語句測試一下
for
i
in
*aa*
;do
nn=$(echo
$i
|
sed
's/aa/bb/')
;echo
"$nn";done
保險起見,只拷貝
for
i
in
*aa*
;do
nn=$(echo
$i
|
sed
's/aa/bb/')
;cp
"$i"
"$nn";done
這是更名,慎用
for
i
in
*aa*
;do
nn=$(echo
$i
|
sed
's/aa/bb/')
;mv
"$i"
"$nn";done
2.用rename簡潔
先用-n開關測試
rename
-n
's/aa/bb/'
*
測試無誤去掉-n進行更名
rename
's/aa/bb/'
*
Ⅳ linux 中如何用vi編輯器替換相同的字元
替換一個字元:在命令模式下選中要替換的字元,按r,再按替換後的字元。
替換全文中所有的字元:可以在命令模式下輸入:% s/str1/str2/g
Ⅳ linux下如何替換跨多行的字元串
諸多原因,使用前請自行准確匹配兩個關鍵字元串,再拿掉"-i"選項進行輸出測試.如下腳本使用了"-i"選項將是對操作文件進行直接的更改,此腳本沒有為操作文件進行備份,所以說是個危險的動作,請謹慎參考!
GNU shell sed 4版測試通過. 單行腳本如下:
sed -i -e ':label; /hijklmn/,/456/ { /456/! { $! { N; b label }; }; s/hijklmn.*456/abc/; }' file
Ⅵ linux系統替換文件怎麼替換
sed
批量替換多個文件中的字元串
格式: sed -i "s/查找欄位/替換欄位/g" `grep 查找欄位 -rl 路徑`
例如:替換/home下所有文件中的xxx為ooo
sed -i "s/xxx/ooo/g" `grep xxx -rl /home`
單個文件中的字元串替換
將文件1.txt內的文字「111」替換成「222」
sed -i "s/111/222/g" 2.txt
注意:替換前請備份好文件以免造成不必要的損失,字元串要為絕對內容。
Ⅶ linux下如何替換文件中每一行指定位置字元串
我這里使用的是代碼截取的方式來輸出的,既然你要刪除的是第五個到第十個字元,那麼我就取前四個,以及第10個以後的字元,然後再中間加上六個*號,就能拼接出所需要的字元串。代碼如下:
for line in $(cat test.txt);
do
echo "${line:0:4}******${line:11}"
done
第一個變數${line:0:4}表示從一行第0個開始取,取4個,中間加上6個星號,第二個${line:11}變數表示從第11個開始取,一直取到最後一位。這樣拼接起來就是你需要的內容了,如果想把這些內容重新輸入到文件中,加上一個重定向就可以了,不知道我說清楚沒有,希望可以幫助到你。
Ⅷ 總結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替換文件命令
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如何刪除替換變數值Linux刪除替換變數值的方法
在Linux系統中,對變數進行賦值後需要發現有些問題,需要對變數值進行刪除或替換,本文將針對Linux變數值的替換和刪除做個詳細介紹,希望對你有所幫助。一起去看看吧!
1、變數內容的刪除
[root@bogon ~]# echo ${PATH} #呼叫出PATH變數的值
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin:/root/bin
[root@bogon ~]# echo ${PATH#/*bin:} #看見那個“#”符號,表示從變數“PATH”值的左邊開始向右邊刪除能匹配到“*bin:”的位置,僅刪除能匹配到最短的那個,所以輸出內容如下,“/usr/local/sbin:”被刪除了
/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin:/root/bin
[root@bogon ~]# echo ${PATH#*local/bin:}
/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin:/root/bin
[root@bogon ~]# echo ${PATH##/*bin:} #兩個“#”表示刪除能匹配到最長的那個,所以“/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin:”全部被刪除
/root/bin
[root@bogon ~]# echo ${PATH%:/*bin} #把上邊的“#”號換成“%”看看,表示從變數“PATH”值的右邊開始向左邊刪除能匹配到“*bin”的位置,僅刪除能匹配到最短的那個,所以“:/root/bin”被刪除
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin
[root@bogon ~]# echo ${PATH%%:/*bin} #兩個“%”與兩個“#”類似的道理
/usr/local/sbin
2、變數內容的替換
[root@bogon ~]# echo ${PATH/sbin/SBIN/} #用“SBIN”替換“sbin”,但只替換第一次匹配到的
/usr/local/SBIN/:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin:/root/bin
[root@bogon ~]# echo ${PATH//sbin/SBIN/} #用“SBIN”替換“sbin”,全局替換
/usr/local/SBIN/:/usr/local/bin:/SBIN/:/bin:/usr/SBIN/:/usr/bin:/usr/local/mysql/bin:/root/bin
變數內容刪除與替換小結:
變數書寫方式功能描述
${變數名稱#匹配字元}若變數內容有被匹配到,剛從變數內容的左邊開刪除,但刪除匹配最短的
${變數名稱##匹配字元}若變數內容有被匹配到,剛從變數內容的左邊開刪除,但刪除匹配最長的,可理解成此時工作在貪婪模式
${變數名稱%匹配字元}若變數內容有被匹配到,剛從變數內容的右邊開刪除,但刪除匹配最短的
${變數名稱%%匹配字元}若變數內容有被匹配到,剛從變數內容的右邊開刪除,但刪除匹配最長的,可理解成此時工作在貪婪模式
${變數稱/舊字元串/新字元串}從變數內容的左邊開始匹配,用新字元串替換舊字元串,僅替換第一個匹配到的字元串
${變數稱//舊字元串/新字元串}從變數內容的左邊開始匹配,用新字元串替換舊字元串,全部替換匹配到的字元串
以上內容就是今天小編為大家帶來的關於Linux刪除和替換變數值的方法了,本文只介紹了刪除和替換這兩種方法,變數的修改還有取代等方式,這里就不一一介紹了。希望能夠幫助到大家!