linux腳本替換字元串
❶ 總結linux替換字元串的幾種方法
換個角度,替換/bin為/bin就不會有錯啦
echo ${path/\/bin/\/bin} 其中/前面要加轉義符\
或者用sed來替換,
echo $path | sed 's#/bin#/bin#g'格式為s#a#b#,將a替換為b。
後面加個g表示全局替換,即替換所有出現的。
也可以這樣寫:
echo $path | sed 's#[^s]bin#/bin#g'[^s]在正則中表示不是s的一個字元。這里只有兩種情況,一種是sbin,一種是/bin,這樣sbin就可以被排除了。
❷ linux shell 腳本 字元串替換問題
shell腳本中,單引號內的$是不被解釋的
perl支持雙引號嗎?改成雙引號試試
❸ linux替換文件中的字元串怎麼使用
(一)通過vi編輯器來替換。
參考博文:
http://www.linuxdiyf.com/viewarticle.php?id=99843
http://kingaragorn.javaeye.com/blog/467308
vi/vim 中可以使用 :s 命令來替換字元串。以前只會使用編輯軟體進行替換,今天發現該命令有很多種寫法(vi 真是強大啊,還有很多需要學習),記錄幾種在此,方便以後查詢。
: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
(二)Sumly法直接替換文件中的字元串。(此法不用打開文件即可替換字元串,而且可以批量替換多個文件。)
例1
執行命令:
perl -p -i -e "s/China/Sumly/g" /www/*.htm /www/*.txt
上面的意思是說將www文件夾下所有的htm和txt文件中的「China」都替換為「Sumly」
例2
執行命令:
perl -p -i -e "s/memory_proction/memory_proction2/g" ./*.sql
上面的意思是將當前目錄下所有的sql文件中的「memory_proction」替換成「memory_proction2」
❹ linux 下用shell sed替換文本中的字元串
sed是行編輯器,用這個工具非常困難。可以參考以下腳本:
#!/bin/bash
while read line
do
if echo $line | grep 'Hour$' >/dev/null; then
echo $line | tr -d '\n'
else
echo $line
fi
done < $1
1,將上面腳本保存為fuck.sh
2,chmod 755 fuck.sh
3,./fuck.sh file
❺ linux替換文件中的字元串怎麼使用
可以通過shell腳本替換字元串方式,如果知道第幾行,格式如下:
hello
字元串內容可能是任意字元串,如何把>和<中間的字元串替換為我的字元串比如world
具體例子:
比如要替換第128行
sed
-i
'128s/>.*world
'
test.txt
這樣子</pre
評論
0
0
載入更多
❻ 如何在linux環境下實現txt文本的字元串替換
#!/usr/bin/python
import
sys
fin=open(sys.argv[1])
fout=open(sys.argv[1]+'.new',"w")
line=fin.readline()
while
line!='':
line=line.replace(sys.argv[2],sys.argv[3])
fout.write(line)
line=fin.readline()
fin.close()
fout.close()
各linux里基本都有python的,將上面保存為rp.py,替換某文件中字元串格式
./rp.py
~/tmp.txt
aaa
xxx
將自己家目錄中的tmp.txt中所有aaa替換為xxx
新產生的文件也在tmp.txt目錄中,叫tmp.txt.new
❼ linux如何替換文件指定行的特定位置字元串
可以通過Shell腳本替換字元串方式,如果知道第幾行,格式如下:
<string id="str_ig_ghjjk">hello</string>
字元串內容可能是任意字元串,如何把>和<中間的字元串替換為我的字元串比如world
具體例子:
比如要替換第128行
sed -i '128s/>.*</>world</' test.txt
這樣子
❽ SHELL腳本對LINUX下指定文本文件的滿足條件的行的特定位置字元串進行替換
YDAY=$(date+"%Y%m%d"-d"-1days")
TDAY=$(date+"%Y%m%d")
awk-vYDAY=$YDAY-vTDAY=$TDAY'
NR==1{
if(substr($0,20,8)==YDAY)
$0=substr($0,1,19)TDAYsubstr($0,28)
if(substr($0,34,8)==YDAY)
$0=substr($0,1,33)TDAYsubstr($0,42)
}
/^TH/{
if(substr($0,21,8)==YDAY)
$0=substr($0,1,20)TDAYsubstr($0,29)
}
{print}'文件名
❾ linux怎麼批量替換文件內容
方法一:
使用perl ,命令如下:
下面這個例子就是將當前目錄及所有子目錄下的所有pom.xml文件中的
」http://repo1.maven.org/maven2「
替換為
」http://localhost:8081/nexus/content/groups/public「.
這里用到了Perl語言,
perl -pi -e 在Perl 命令中加上-e 選項,後跟一行代碼,那它就會像運行一個普通的Perl 腳本那樣運行該代碼.
從命令行中使用Perl 能夠幫助實現一些強大的、實時的轉換。認真研究正則表達式,並正確地使用,將會為您省去大量的手工編輯工作。
方法二:
使用sed命令如下:
Linux下批量替換多個文件中的字元串的簡單方法。用sed命令可以批量替換多個文件中的字元串。
例如:我要把aaa替換 為bbb,執行命令:
這是目前linux最簡單的批量替換字元串命令了!
具體格式如下:
實例代碼:
❿ 在red hat enter linux中用怎麼替換字元串
sed。
在linux中可以利用sed命令來查找和替換文件中的字元串,該命令採用的是流編輯模式,可以根據正則表達式匹配和處理文本文件中的數據,替換語法為「sed」s/要搜索的字元串或正則表達式/替換值/g'要執行操作的文件名」。