linux查找和替換目錄下所有文件中字元串單個文件中查找替換很簡單,就不說了。文件夾下所內有文件中字容符串的查找替換就要記憶了,最近部署幾十台linux伺服器,記錄下總結。查找文件夾下包含字元串的文件例:查找/usr/local目錄下所有包含rubyer.me的文件。1
grep
-lr
'rubyer.me'
/usr/local/*vim替換單個文件中所有字元串方法例:替換當前文件中所有old為new
www.shiwu.com
1
:%s/old/new/g2#%表示替換說有行,g表示替換一行中所有匹配點。
替換文件夾下包含字元串的文件sed結合grep例:要將目錄/www下面所有文件中的zhangsan都修改成lisi,這樣做:1
sed
-i
s/old/new/g
`grep
old
-rl
/www`作者
skq
⑵ xshell怎麼替換linux伺服器的文件
方法/步驟
打開Xshell,登錄Linux伺服器
查看lrzsz(rpm -qa|grep lrzsz),是否已經安裝
若lrzsz沒有安裝,通過WinCSP上傳安裝包(配鏈譽安裝包可從Linux操作系統鏡像文件中獲取)
安裝lrzsz
執行rz上傳文件,彈出文件選擇窗口
選擇上傳的文件,點擊「打開」
彈出如下喚答窗口,表明文件已培段經上傳成功
⑶ linux下有個文件中有幾個相同的字元串,我想要用命令替換其中的一個有什麼方法,坐等答案
引用了stablish 寫的一個腳本 :
單純的依靠mv命令做不到,需要腳本來實現
編寫腳本 rename 如下
#----------------------------------------------
#!/bin/sh
ls -l $1 | grep ^[^d] | awk ''| while read line; do
do=`echo $line | grep $2`
if [ ! "$do" = "" ]; then
newname=`echo $line | sed 's/'$2'/'$3'/g'`
echo "rename $line to $newname ..."
mv $1/$line $1/$newname
fi
done
#------------------------------------------------
將以上保存為 rename文件,
然後運行
chmod +x rename
使rename可運行
然後按照如下格式執行rename
假設rename在當前路徑
$./rename [fullpathtofiles] .sql.cluster1 .sql
[fullpathtofiles] 指向你的BAOAN102671.sql.cluster1 這些文件的全路徑即可
參考以下我的演示 ,將具體路徑替換到你的即可,實際測試通過
--------------------------------
root@bogon~/testmv# ls
12343234234.sql.cluster1 323423423423.sql.cluster1 sdfdssddd.sql.cluster1
root@bogon~/testmv# cd ..
root@bogon~# ./rename ./testmv/ .sql.cluster1 .sql
rename 12343234234.sql.cluster1 to 12343234234.sql ...
rename 323423423423.sql.cluster1 to 323423423423.sql ...
rename sdfdssddd.sql.cluster1 to sdfdssddd.sql ...
root@bogon~# cd testmv
root@bogon~/testmv# ls
12343234234.sql 323423423423.sql sdfdssddd.sql
⑷ linux復制文件到另一個文件夾
linux復制文件到另一個文件夾方法如下:
操作設備:xshell。
設備系統:linux系統。
操作軟體:linux伺服器。
1、打開xshell軟體連接上linux伺服器。
⑸ linux替換原來文件的命令
可以使用 Linux 系統的拷貝命令 cp,對原來的文件進行替換。例如:
$cp newfile oldfile
該命令的作用就是使用現在 newfile 的內容,替換掉原來 oldfile 的內容。
⑹ Linux伺服器中文件刪除與替換如何實現
刪除
單個:rm file_name 如果不希望提示確認是否刪除 rm -f file_name 如果是目錄 rm -r directory_name 同樣內 不提示 rm -rf directory
多個:rm fileName1 fileName2 ... 同上容
替換:
mv new_file old_file
⑺ linux伺服器文本關鍵字搜索替換
1、vi命令下的查找和替換
1.1 vi下的查找
/hello<Enter> :向下查找hello匹配字元串
?hello<Enter>:向上查找hello匹配字元串
使用了查找命令之後,使用如下兩個鍵快速查找:
n:按照同一方向繼續查找
N:按照反方向查找
hello是需要匹配的字元串,例如:
/name<Enter> #查找name
/name<Enter> #查找name單詞(注意前後的空格)
除此之外,hello還可以使用一些特殊字元,包括(/、^、$、*、.),其中前三個這兩個是vi與vim通用的,「/」為轉義字元。
/^name<Enter> #查找以name開始的行
/name$<Enter> #查找以name結束的行
//^name<Enter> #查找^name字元串
1.2 vi下的替換
:s/name/title/ #替換當前行第一個 name 為 title
:s/name/title/g #替換當前行所有 name 為 title
:n,$s/name/title/ #替換第 n 行開始到最後一行中每一行的第一個 name 為 title
:n,$s/name/title/g #替換第 n 行開始到最後一行中每一行所有 name 為 title
#(n 為數字,若 n 為 .,表示從當前行開始到最後一行)
:%s/name/title/ #(等同於 :g/name/s//title/) 替換每一行的第一個 name 為 title
:%s/name/title/g #(等同於 :g/name/s//title/g) 替換每一行中所有 name 為 title
可以使用 #或+ 作為分隔符,此時中間出現的 / 不會作為分隔符
:s#name/#title/# 替換當前行第一個 name/ 為 title/
:%s+/oradata/apras/+/user01/apras1+ (
使用+ 來 替換 / ): /oradata/apras/替換成/user01/apras1/
2.sed和grep配合
命令:sed -i s/yyyy/xxxx/g `grep yyyy -rl --include="*.txt" ./`
作用:將當前目錄(包括子目錄)中所有txt文件中的yyyy字元串替換為xxxx字元串。其中,
-i 表示操作的是文件,``括起來的grep命令,表示將grep命令的的結果作為操作文件。
s/yyyy/xxxx/表示查找yyyy並替換為xxxx,後面跟g表示一行中有多個yyyy的時候,都替換,而不是僅替換第一個
另外,如果不需要查找子目錄,僅需要在當前目錄替換,用sed命令就行了,命令如下:sed -i s/xxxx/yyyy/g ./*.txt
3.find命令查找和替換
命令格式:find -name '要查找的文件名' | xargs perl -pi -e 's|被替換的字元串|替換後的字元串|g'
#查找替換當前目錄下包含字元串並進行替換
find -name '*.txt' | xargs perl -pi -e 's|江蘇|上海|g'
#遞歸查找替換
find . -type f -name '*.html' | xargs perl -pi -e 's|蘇州|上海|g'