Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
unix命令-忽略";";分拣时_Unix_Command Line - Fatal编程技术网

unix命令-忽略";";分拣时

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

我正在列出目录,我想按名称排序,但忽略前导的“The”,即输出应为:

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/'