unix命令-忽略";";分拣时
我正在列出目录,我想按名称排序,但忽略前导的“The”,即输出应为:unix命令-忽略";";分拣时,unix,command-line,Unix,Command Line,我正在列出目录,我想按名称排序,但忽略前导的“The”,即输出应为: Apple The Banana Orange 而不是 Apple Orange The Banana 最好的方法是什么?此解决方案可行,但很愚蠢,并且不会在所有情况下都有效(例如有双空格) 这个解决方案是可行的,但很愚蠢,而且不会在所有情况下都有效(例如有双空格) 事实上我会写下来的 我的怀疑是,以下内容将满足您的要求: ls -d * | sed 's/^The /\t/' | sort -b | sed 's/^\t
Apple
The Banana
Orange
而不是
Apple
Orange
The Banana
最好的方法是什么?此解决方案可行,但很愚蠢,并且不会在所有情况下都有效(例如有双空格)
这个解决方案是可行的,但很愚蠢,而且不会在所有情况下都有效(例如有双空格)
事实上我会写下来的 我的怀疑是,以下内容将满足您的要求:
ls -d * | sed 's/^The /\t/' | sort -b | sed 's/^\t/The /'
我会解释的
ls-d*
列出所有目录sed-r/^The/\t/'
用制表符(一个空白占位符)替换所有前导的“The”,排序-b忽略前导的空白(制表符),然后sed's/^\t/The/'
再次用“The”替换所有前导的制表符。事实上,我要把它写下来
我的怀疑是,以下内容将满足您的要求:
ls -d * | sed 's/^The /\t/' | sort -b | sed 's/^\t/The /'
我会解释的
ls-d*
列出所有目录sed-r/^The/\t/'
将所有前导的“The”替换为制表符(一个空白占位符),sort-b
排序,忽略前导的空白(制表符),sed's/^\t/The/'
将所有前导的制表符再次替换为“The”。不确定这是否有效。。。替换为占位符的前导空格似乎会导致所有这些目录浮动到顶部。我试着简化这个职位的工作。我正在剥领导的衣服。/我只关心领导的衣服。然后我认为前导空格被忽略了。现在编辑…我个人更喜欢。。。ls-d*| sed-r's/^The/\t/'| sort-b | sed-r's/^\t/The/'。。。我相信这是可行的是的,我想你不会在文件名的其他地方找到/t。当然,ls-d,ls-d-R和find-类型d都会给出不同的结果,所以这取决于你想要什么。。。替换为占位符的前导空格似乎会导致所有这些目录浮动到顶部。我试着简化这个职位的工作。我正在剥领导的衣服。/我只关心领导的衣服。然后我认为前导空格被忽略了。现在编辑…我个人更喜欢。。。ls-d*| sed-r's/^The/\t/'| sort-b | sed-r's/^\t/The/'。。。我相信这是可行的是的,我想你不会在文件名的其他地方找到/t。当然,ls-d,ls-d-R和find-类型d都会给出不同的结果,所以这取决于你想要什么。我真的很喜欢这个。我怎样才能稍微调整它,使其仅在第一个目录深度内工作?“水果/苹果”->“水果,苹果”哦,到了那里,我把(.*/\1改成了([^/]*)/\1find-mindepth 2-typed | grep-o[^./].*sed-e/^1、[^/]*)/\1、/'|排序| sed-e/(.*)、\//\1我真的喜欢这个。我怎样才能稍微调整它,使其仅在第一个目录深度内工作?“水果/苹果”->“水果,苹果”哦,到了那里,我把(.*/\1改成了([^/]*)/\1find-mindepth2-typed | grep-o[^./].*sed-e/^1、[^/]*)/\1、排序、sed-e/(.*)、\//\1
ls | sed -e 's/^The \(.*\)/\1, The/' | sort | sed -e 's/\(.*\), The$/The \1/'