如何排序以便 caml 位于 xml 中的 c 之后?

如何排序以便 caml 位于 xml 中的 c 之后?

按行对文件进行排序

<LexerType name="caml" desc="Caml" ext="">
<LexerType name="c" desc="C" ext="">

导致 caml 位于 c 之前,我该如何将 c 放在第一位,而不依赖于此文件的字符位置?

答案1

使用sort

$ sort -t\" -k2,2 file.xml
<LexerType name="c" desc="C" ext=""/>
<LexerType name="caml" desc="Caml" ext=""/>

   -k, --key=POS1[,POS2]
          start a key at POS1, end it at POS2 (origin 1)
   -t, --field-separator=SEP
          use SEP instead of non-blank to blank transition

使用vim

:%sort /name=/

或者

:%sort r /name="\w*"/

:[range]sor[t][!] [i][u][r][n][x][o] [/{pattern}/]

                    When /{pattern}/ is specified and there is no [r] flag
                    the text matched with {pattern} is skipped, so that
                    you sort on what comes after the match.
                    Instead of the slash any non-letter can be used.
                    For example, to sort on the second comma-separated
                    field: >
                            :sort /[^,]*,/
                    To sort on the text at virtual column 10 (thus
                    ignoring the difference between tabs and spaces): >
                            :sort /.*\%10v/
                    To sort on the first number in the line, no matter
                    what is in front of it: >
                            :sort /.*\ze\d/

                    With [r] sorting is done on the matching {pattern}
                    instead of skipping past it as described above.
                    For example, to sort on only the first three letters
                    of each line: >
                            :sort /\a\a\a/ r

相关内容