linuxshell字元替換
可以這樣做:
方法1:sed -i 's/被替換的內容/要替換成的內容/' file
方法2:sed 's/被替換的內容/要替換成的內容/g' file > file.out;mv file.out file。
(1)linuxshell字元替換擴展閱讀:
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、重定向標准輸出和標准錯誤:&> 將標准輸出、標准錯誤信息全部保存到指定文件,而不是直接顯示在屏幕上。
② shell linux 命令 替換和寫入
cat A|grep "abcdef" >>B
sed -i 's/^.*abcdef/#&/g' A
測試了下,可以
③ shell中字元查找到並替換
用sed 's/姓名/name/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腳本程序,查找文件內的ABC字元並替換成123
sed -i 's/ABC/123/g' 文件名
⑦ linux shell 腳本 字元串替換問題
shell腳本中,單引號內的$是不被解釋的
perl支持雙引號嗎?改成雙引號試試
⑧ linux shell,替換文本
sed's/(192.168.2.3)d+/12048/'a.txt
替換字元串裡面1代表前面第一個括弧裡面的內容.
d+表示多個連續數字.
⑨ 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替換最後一個字元
[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