cat A|grep "abcdef" >>B
sed -i 's/^.*abcdef/#&/g' A
測試了下,可以
Ⅱ linux shell替換最後一個字元
[seesea@UC~]$catfile
acccddd
xxxyzzz
qw
[seesea@UC~]$sed-r's/\([^]*)$/1/'file
acccddd
xxxyzzz
qw
[seesea@UC~]$sed-r's/(.*)\/1/'file
acccddd
xxxyzzz
qw
Ⅲ Linux下的shell編程 如何替換文件中的內容
shell編程中替換文件中的內容用到四個命sed,find
,grep,awk
下面是三種使用替換的方法
方法一:find
-name
'要查找的文件名'
|
xargs
perl
-pi
-e
's|被替換的字元串|替換後的字元串|g'下面這個例子就是將當前目錄及所有子目錄下的所有pom.xml文件中的」http://repo1.maven.org/maven2「
替換為」http://localhost:8081/nexus/content/groups/public「.
find
-name
'pom.xml'
|
xargs
perl
-pi
-e
's|http://repo1.maven.org/maven2|http://localhost:8081/nexus/content
/groups/public|g'這里用到了Perl語言,
perl
-pi
-e
在Perl
命令中加上-e
選項,後跟一行代碼,那它就會像運行一個普通的Perl
腳本那樣運行該代碼.
從命令行中使用Perl
能夠幫助實現一些強大的、實時的轉換。認真研究正則表達式,並正確地使用,將會為您省去大量的手工編輯工作。
find
-name
'pom.xml'
|
xargs
perl
-pi
-e
's|http://repo1.maven.org/maven2|http://localhost:8081/nexus/content/groups/public|g'
方法二:Linux下批量替換多個文件中的字元串的簡單方法。用sed命令可以批量替換多個文件中的字元串。
用sed命令可以批量替換多個文件中的
字元串。
sed
-i
"s/原字元串/新字元串/g"
`grep
原字元串
-rl
所在目錄`
例如:我要把mahuinan替換
為huinanma,執行命令:
sed
-i
"s/mahuinan/huinanma/g"
'grep
mahuinan
-rl
/www'
這是目前linux最簡單的批量替換字元串命令了!
具體格式如下:
sed
-i
"s/oldString/newString/g"
`grep
oldString
-rl
/path`
實例代碼:sed
-i
"s/大小多少/日月水火/g"
`grep
大小多少
-rl
/usr/aa`
sed
-i
"s/大小多少/日月水火/g"
`grep
大小多少
-rl
./`
方法三:在日程的開發過程中,可能大家會遇到將某個變數名修改
為另一個變數名的情況,如果這個變數是一個局部變數的話,vi足以勝任,但是如果是某個全局變數的話,並且在很多文件中進行了使用,這個時候使用vi就是
一個不明智的選擇。這里給出一個簡單的shell命令,可以一次性將所有文件中的指定字元串進行修改:
grep
"abc"
*
-R
|
awk
-F:
'{print
$1}'
|
sort
|
uniq
|
xargs
sed
-i
's/abc/abcde/g'
批量替換
配置文件中的IP:
grep
"[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}"
*
-R
|
awk
-F:
'{print
$1}'
|
sort
|
uniq
|
xargs
sed
-i
's/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/172\.0\.0\.1/g'
Ⅳ 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 shell如何將本身是變數字元串日期批量替換
一條語句就夠了:
cat 1.txt | sed -r "s/[0-9]{8}/`date -d yesterday +%Y%m%d`/" > 2.txt
Ⅵ linux如何替換文件指定行的特定位置字元串
可以通過Shell腳本替換字元串方式,如果知道第幾行,格式如下:
<string id="str_ig_ghjjk">hello</string>
字元串內容可能是任意字元串,如何把>和<中間的字元串替換為我的字元串比如world
具體例子:
比如要替換第128行
sed -i '128s/>.*</>world</' test.txt
這樣子
Ⅶ linux shell中 sed 文件的1到7行行首有指定字元串的整行替換為為指定內容.
sed '1,7s/^字元串.*/替換內容/' file
不要隨便加 -i 參數。先確定好在加。
Ⅷ linux替換文件中的字元串怎麼使用
可以通過shell腳本替換字元串方式,如果知道第幾行,格式如下:
hello
字元串內容可能是任意字元串,如何把>和<中間的字元串替換為我的字元串比如world
具體例子:
比如要替換第128行
sed
-i
'128s/>.*world
'
test.txt
這樣子</pre
評論
0
0
載入更多
Ⅸ 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,替換文本
sed's/(192.168.2.3)d+/12048/'a.txt
替換字元串裡面1代表前面第一個括弧裡面的內容.
d+表示多個連續數字.