我正在创建一个脚本,它将读取TXT文件(其中包含许多目录路径)并删除每个目录路径的开头。但是,每个目录路径都可以以./
或../
开头。如何使用SED删除开头?
我知道我可以使用2个命令行,一个用于删除./
而另一个用于删除../
,但如何在一个命令行中删除这两个模式?
答案 0 :(得分:2)
我建议使用GNU sed:
echo '../foo' | sed -E 's|^\.{1,2}/||'
输出:
foo
我从s///
切换到s|||
以避免转义/
。
答案 1 :(得分:-1)
另一个。使用^
表示字符串的开头,使用\?
表示后者.
可选:
$ echo file
./foo
../bar
./period_ending./baz
$ sed 's/^\.\.\?\///g' file
foo
bar
period_ending./baz