[英]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.