我有一个包含文件路径列表的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的部分
发布于 2014-10-30 11:16:05
相反,您可以使用以下语法:
OLDPATH="/old/file"
sed "s#$OLDPATH##" list.txt > newlist.txt这将查找并删除$OLDPATH,而您的|d则删除包含给定模式的行。
对于给定的输入数据,它返回:
/path/directory
/path/mydirectory发布于 2014-10-30 23:17:28
如果您的所有行都以OLDPATH开头,则可以使用
cut -c $(echo -n "$OLDPATH" | wc -c)-或者更好的是:
cut -c "$((${#OLDPATH}+1))"-https://stackoverflow.com/questions/26651509
复制相似问题