簡體   English   中英

BASH:在特定位置插入文字

[英]BASH: insert text in a specific position

我想找到一種在字符串中添加一些字符的解決方案

folder/dir/directory/file.txt
shares/page.html
etc/downloads/torrent.torrent

應該成為

.folder.old/dir/directory/file.txt
.shares.old/page.html
.etc.old/downloads/torrent.torrent

我怎樣才能做到這一點? 'grep'是正確的選擇嗎?

謝謝

使用sed而不是grep

sed -i.bak 's#^\([^/]*\)#.\1.old#'

請注意, -i將結果保存在原始文件本身中。 -i.bak將以.bak擴展名保存您的原始文件,以防出現問題。

grep只搜索,不會替換。 您要sed

sed -i.bak 's#^\([^/]*\)#.\1.old#'

^表示行首
\\(...\\)正在捕獲括號,它匹配的模式在替換中變成\\1
[^/]匹配/任何內容
*為零或以上

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM