A. 在red hat enter linux中用怎麼替換字元串
sed。在linux中可以利用sed命令來查找和替換文件中的字元串,該命令採用的是流編輯模式,可以根據正則表達式匹配和處理文本文件中的數據,替換語法為「sed」s/要搜索的字元串或正則表達式/替換值/g'要執行操作的文件名」。
B. Linux命令之sed-替換字元串
1. sed -i 's/CANCEL_TIME/CANCEL_RECV_TIME/g' csv2drds-TF_B_PAYLOG_D.json
---指定文件替換,將文件中的CANCEL_TIME替換成CANCEL_RECV_TIME;
2. sed -i 's/CANCEL_TIME/CANCEL_RECV_TIME/g' `grep CANCEL_TIME -rl ./*TF_B_PAYLOG_D*.json`
---批量文件替換,遞歸查找含CANCEL_TIME的文件,將所有文件中的CANCEL_TIME替換成CANCEL_RECV_TIME;
3. sed -i 's/\/tmp\/ditagent\/TF_B_PAYLOG_D.csv/\/vdata\/datapre\/281\/'"$filename"'/g' $jsonname
---帶/的字元串替換,將/tmp/ditagent/TF_B_PAYLOG_D.csv替換成/vdata/datapre/281/'"$filename"'
4. sed -i 's/^/beginstring&/g' *.txt
---在所有行首添加字元串;
5. sed -i 's/$/&endstring/g' *.txt
---在所有行末添加字元串
6. sed -i '2s/原字元串/替換字元串/g' *.txt
---替換第2行
7. sed -i '$s/原字元串/替換字元串/g' *.txt
---替換最後一行
8. sed -i '2,5s/原字元串/替換字元串/g' *.txt
---替換2到5行
9. sed -i '2,$s/原字元串/替換字元串/g' *.txt
---替換2到最後一行
10. sed 's/\x80/|/g' test.dat |iconv -f gbk -t utf-8 > testutf8.dat
---把test.dat中的歐元符號替換成豎線,再將文件gbk格式轉成utf8
-i選項是直接在文件中替換,不在終端輸出;
-r選項是所給的path中的目錄遞歸查找;
-l選項是輸出所有匹配到oldstring的文件;
s/表示替換
/g表示全局替換
C. 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個開始取,一直取到最後一位。這樣拼接起來就是你需要的內容了,如果想把這些內容重新輸入到文件中,加上一個重定向就可以了,不知道我說清楚沒有,希望可以幫助到你。
D. 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就可以被排除了。