簡體   English   中英

使用sed從行中刪除模式

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

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