我正在寻找从路径中删除字段的最简单和最具可读性的方法。例如,我在这里有/this/is/my/ example /path/,我想使用bash命令从字符串中删除第五个字段("/complicated"),这样它就变成了/this/is/my/path。我可以做到这一点
echo "/this/is/my/complicated/path/here" | cut -d/ -f-4
echo "/"
echo "/this/is/my/complicated/path/here" | cut -d/ -f6-但我希望只用一个简单的命令就能完成这件事,比如
echo "/this/is/my/complicated/path" | tee >(cut -d/ -f-4) >(cut -d/ -f6-)除了这个不起作用。
发布于 2012-04-25 22:21:08
使用cut,您可以指定要打印的字段的逗号分隔列表:
$ echo "/this/is/my/complicated/path/here" | cut -d/ -f-4,6-
/this/is/my/path/here因此,实际上没有必要使用两个命令。
发布于 2012-04-25 22:10:25
使用sed怎么样?
$ echo "/this/is/my/complicated/path/here" | sed -e "s%complicated/%%"
/this/is/my/path/here发布于 2012-04-25 22:30:24
这将删除第5个path元素
echo "/this/is/my/complicated/path/here" |
perl -F/ -lane 'splice @F,4,1; print join("/", @F)'就是bash
IFS=/ read -a dirs <<< "/this/is/my/complicated/path/here"
newpath=$(IFS=/; echo "${dirs[*]:0:4} ${dirs[*]:5}")https://stackoverflow.com/questions/10317384
复制相似问题