![](/img/trans.png)
[英]using regex with sed to delete the line just below the matching pattern
[英]Using sed to delete a pattern from the line
我有一個list.txt文件,其中包含文件路徑列表:
/old/file/path/directory
/old/file/path/mydirectory
我正在嘗試執行以下操作:
/path/directory
/path/mydirectory
為此,我正在使用sed :
OLDPATH=/old/file/
sed "\|$OLDPATH|d" list.txt > newlist.txt
但是,這將完全刪除該行。 如何刪除僅使用sed
和變量$OLDPATH
?
相反,您可以使用以下語法:
OLDPATH="/old/file"
sed "s#$OLDPATH##" list.txt > newlist.txt
這將查找$OLDPATH
並將其刪除,而|d
將刪除包含給定模式的行。
使用給定的輸入數據,它返回:
/path/directory
/path/mydirectory
如果所有行都以OLDPATH
,則可以使用
cut -c $(echo -n "$OLDPATH" | wc -c)-
或更好:
cut -c "$((${#OLDPATH}+1))"-
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.