Linux 如何避免文件中所有行的开头出现特定字符串?

Linux 如何避免文件中所有行的开头出现特定字符串?,linux,Linux,我有一个文件,内容如下 /hello/dir1/dir2/remove_til_here/code/dira/dir1/a.c /hello/dir1/dir2/remove_til_here/code/dirb/dir7/b.c /hello/dir1/dir2/remove_til_here/code/dirc/dir3/c.c /hello/dir1/dir2/remove_til_here/code/dird/dir2/d.c ...... 我希

我有一个文件,内容如下

    /hello/dir1/dir2/remove_til_here/code/dira/dir1/a.c
    /hello/dir1/dir2/remove_til_here/code/dirb/dir7/b.c
    /hello/dir1/dir2/remove_til_here/code/dirc/dir3/c.c
    /hello/dir1/dir2/remove_til_here/code/dird/dir2/d.c
    ......
我希望o/p如下所示:

code/dira/dir1/a.c
code/dirb/dir7/b.c
code/dirc/dir3/c.c
code/dird/dir2/d.c
我想避免从所有行中删除字符串
/hello/dir1/dir2/remove\u stil\u here/
。请解释一下。我试过使用
cat文件| awk'{print$5}'
,但没有用,
提前谢谢

sed怎么样

sed 's|^.*remove_til_here/||'
对于非贪婪匹配,我认为您也可以使用perl-不,等等,不要逃跑:

perl -pe 's|^(.*?)remove_til_here/||' file

sed怎么样

sed 's|^.*remove_til_here/||'
对于非贪婪匹配,我认为您也可以使用perl-不,等等,不要逃跑:

perl -pe 's|^(.*?)remove_til_here/||' file
因为要删除的模式是一个固定路径,所以您知道存在多少个目录分隔符。所以不妨使用
cut

cut -d/ -f6- inputfile
因为要删除的模式是一个固定路径,所以您知道存在多少个目录分隔符。所以不妨使用
cut

cut -d/ -f6- inputfile

(+1)可能想使用非贪婪匹配?@NPE
sed
知道非贪婪匹配吗?语法是什么,我一直在寻找它?哇,sed很漂亮!!谢谢cnicutar的回答!!谢谢:)@cnicutar:看来你是对的。
sed
@NPE中没有非贪婪匹配在其悠久的传统中,任何语法在perl中都有效,它似乎逐字接受
sed
(并允许非贪婪限定符)。(+1)可能想使用非贪婪匹配?@NPE知道非贪婪匹配吗?语法是什么,我一直在寻找它?哇,sed很漂亮!!谢谢cnicutar的回答!!谢谢:)@cnicutar:看来你是对的。
sed
@NPE中没有非贪婪匹配在其悠久的传统中,任何语法在perl中都有效,它似乎逐字接受
sed
(并允许使用非贪婪限定符)。您的
awk
解决方案有什么问题:awk使用tab作为标准分隔符。您应该将separator设置为
/
,并输出第五个分隔符之后的所有内容,而不仅仅是第五列。其他选项也是可行的,如
sed
。您的
awk
解决方案有什么问题:awk使用tab作为标准分隔符。您应该将separator设置为
/
,并输出第五个分隔符之后的所有内容,而不仅仅是第五列。其他选项也可行,如
sed