How to avoid printing a newline when seq completes?












1














To create a column header, looking like:



1234567890123456789


I (am trying to) use seq and echo:



seq -s '' 1 9 ; echo -n 0; seq -s '' 1 9


However, seq outputs a newline after each run. How can I avoid that?










share|improve this question
























  • Fair enough. Sorry about that, it seemed more natural to me.
    – terdon
    32 mins ago
















1














To create a column header, looking like:



1234567890123456789


I (am trying to) use seq and echo:



seq -s '' 1 9 ; echo -n 0; seq -s '' 1 9


However, seq outputs a newline after each run. How can I avoid that?










share|improve this question
























  • Fair enough. Sorry about that, it seemed more natural to me.
    – terdon
    32 mins ago














1












1








1







To create a column header, looking like:



1234567890123456789


I (am trying to) use seq and echo:



seq -s '' 1 9 ; echo -n 0; seq -s '' 1 9


However, seq outputs a newline after each run. How can I avoid that?










share|improve this question















To create a column header, looking like:



1234567890123456789


I (am trying to) use seq and echo:



seq -s '' 1 9 ; echo -n 0; seq -s '' 1 9


However, seq outputs a newline after each run. How can I avoid that?







seq






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 36 mins ago

























asked 59 mins ago









GreenMatt

20617




20617












  • Fair enough. Sorry about that, it seemed more natural to me.
    – terdon
    32 mins ago


















  • Fair enough. Sorry about that, it seemed more natural to me.
    – terdon
    32 mins ago
















Fair enough. Sorry about that, it seemed more natural to me.
– terdon
32 mins ago




Fair enough. Sorry about that, it seemed more natural to me.
– terdon
32 mins ago










4 Answers
4






active

oldest

votes


















3














Assuming you just want to print 1234567890123456789, you can do it with:



$ printf "%s" $(seq 1 9) $(seq 0 9)
1234567890123456789$


That won't have a trailing newline at all though, so maybe you prefer:



$ printf "%s" $(seq 1 9) $(seq 0 9) $'n'
1234567890123456789
$


A few simpler choices if you don't need to use seq:



$ perl -le 'print 1..9,0,1..9'
1234567890123456789
$ printf "%s" {1..9} {0..9} $'n'
1234567890123456789


Since you mentioned portability, I recommend you use the perl approach, or if you are likely to encounter systems without perl, and yet need the same command to run in shells including bash, sh, dash, tcsh etc, try Kamil's approach.






share|improve this answer























  • Thanks. How portable is that? It worked under Bash. Under tcsh I got an "Illegal variable name" error. Under sh, the 'n' was displayed.
    – GreenMatt
    37 mins ago






  • 1




    @GreenMatt ah, that depends. For extreme portability, you may as well just use the perl one which is shell-agnostic. The printf "%s" $(seq 1 9) $(seq 0 9) will work in any POSIX shell, including sh and dash, but the printf "%s" $(seq 1 9) $(seq 0 9) $'n' will fail in dash. Note that it does work in sh (or at least in bash running as sh, so in POSIX mode), I assume you're running Ubuntu or a simmilar system whose sh is actually dash. tcsh is a strange one and not even trying to be POSIX so don't expect any of the shell-based approaches to work there.
    – terdon
    33 mins ago








  • 1




    @GreenMatt of course, if you need portability, you should also avoid using echo.
    – terdon
    29 mins ago










  • Perl? <shudder>
    – GreenMatt
    16 mins ago



















2














You can remove newlines from any stream with tr -d 'n'. In your case



(seq -s '' 1 9 ; echo -n 0; seq -s '' 1 9) | tr -d 'n'


While other answers may concentrate on modifying your original approach, this is the way that should just remove newline characters regardless of what is before |.






share|improve this answer

















  • 1




    Nice. This also has the benefit of being portable to most (all?) shells. I think the OP wants the final newline, so another option might be ( seq -s '' 1 9 ; echo -n 0 ; seq -s '' 1 9 ) | tr -d 'n' ; printf "n".
    – terdon
    20 mins ago










  • Ah yes, I never think of tr.
    – GreenMatt
    16 mins ago



















1














Consider also:



printf '%d' $(seq -w 1 1 99 | cut -c2)


We generate the numbers 01..99, zero-padded (-w), then strip off the tens-place. Those ones-place numbers are then sent to printf to be printed individually.



To get your desired output, use 20 instead:



$ printf '%d' $(seq -w 1 1 20 | cut -c2)
12345678901234567890





share|improve this answer































    0














    I would like to reinforce the answer of @terdon, but propose a solution that works with the tcsh shell as well.
    Unfortunately, I didn't have enough reputation to write this as a comment:



    printf "%sn" "seq 1 9` `seq 0 9`"`



    The backtick - like all methods of command-line substitution -, should cut the trailing newline. Then, printf's own backslash-escape interpretation is used, instead of the ANSI string expansion used in terdon's answer.



    It also works like this, by allowing printf to interpret all escape sequences after substitution with the format specifiers (%b specifier):



    printf "%b" "seq 1 9` `seq 0 9`n"`






    share|improve this answer





















      Your Answer








      StackExchange.ready(function() {
      var channelOptions = {
      tags: "".split(" "),
      id: "106"
      };
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function() {
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled) {
      StackExchange.using("snippets", function() {
      createEditor();
      });
      }
      else {
      createEditor();
      }
      });

      function createEditor() {
      StackExchange.prepareEditor({
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: false,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: null,
      bindNavPrevention: true,
      postfix: "",
      imageUploader: {
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      },
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      });


      }
      });














      draft saved

      draft discarded


















      StackExchange.ready(
      function () {
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f492315%2fhow-to-avoid-printing-a-newline-when-seq-completes%23new-answer', 'question_page');
      }
      );

      Post as a guest















      Required, but never shown

























      4 Answers
      4






      active

      oldest

      votes








      4 Answers
      4






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      3














      Assuming you just want to print 1234567890123456789, you can do it with:



      $ printf "%s" $(seq 1 9) $(seq 0 9)
      1234567890123456789$


      That won't have a trailing newline at all though, so maybe you prefer:



      $ printf "%s" $(seq 1 9) $(seq 0 9) $'n'
      1234567890123456789
      $


      A few simpler choices if you don't need to use seq:



      $ perl -le 'print 1..9,0,1..9'
      1234567890123456789
      $ printf "%s" {1..9} {0..9} $'n'
      1234567890123456789


      Since you mentioned portability, I recommend you use the perl approach, or if you are likely to encounter systems without perl, and yet need the same command to run in shells including bash, sh, dash, tcsh etc, try Kamil's approach.






      share|improve this answer























      • Thanks. How portable is that? It worked under Bash. Under tcsh I got an "Illegal variable name" error. Under sh, the 'n' was displayed.
        – GreenMatt
        37 mins ago






      • 1




        @GreenMatt ah, that depends. For extreme portability, you may as well just use the perl one which is shell-agnostic. The printf "%s" $(seq 1 9) $(seq 0 9) will work in any POSIX shell, including sh and dash, but the printf "%s" $(seq 1 9) $(seq 0 9) $'n' will fail in dash. Note that it does work in sh (or at least in bash running as sh, so in POSIX mode), I assume you're running Ubuntu or a simmilar system whose sh is actually dash. tcsh is a strange one and not even trying to be POSIX so don't expect any of the shell-based approaches to work there.
        – terdon
        33 mins ago








      • 1




        @GreenMatt of course, if you need portability, you should also avoid using echo.
        – terdon
        29 mins ago










      • Perl? <shudder>
        – GreenMatt
        16 mins ago
















      3














      Assuming you just want to print 1234567890123456789, you can do it with:



      $ printf "%s" $(seq 1 9) $(seq 0 9)
      1234567890123456789$


      That won't have a trailing newline at all though, so maybe you prefer:



      $ printf "%s" $(seq 1 9) $(seq 0 9) $'n'
      1234567890123456789
      $


      A few simpler choices if you don't need to use seq:



      $ perl -le 'print 1..9,0,1..9'
      1234567890123456789
      $ printf "%s" {1..9} {0..9} $'n'
      1234567890123456789


      Since you mentioned portability, I recommend you use the perl approach, or if you are likely to encounter systems without perl, and yet need the same command to run in shells including bash, sh, dash, tcsh etc, try Kamil's approach.






      share|improve this answer























      • Thanks. How portable is that? It worked under Bash. Under tcsh I got an "Illegal variable name" error. Under sh, the 'n' was displayed.
        – GreenMatt
        37 mins ago






      • 1




        @GreenMatt ah, that depends. For extreme portability, you may as well just use the perl one which is shell-agnostic. The printf "%s" $(seq 1 9) $(seq 0 9) will work in any POSIX shell, including sh and dash, but the printf "%s" $(seq 1 9) $(seq 0 9) $'n' will fail in dash. Note that it does work in sh (or at least in bash running as sh, so in POSIX mode), I assume you're running Ubuntu or a simmilar system whose sh is actually dash. tcsh is a strange one and not even trying to be POSIX so don't expect any of the shell-based approaches to work there.
        – terdon
        33 mins ago








      • 1




        @GreenMatt of course, if you need portability, you should also avoid using echo.
        – terdon
        29 mins ago










      • Perl? <shudder>
        – GreenMatt
        16 mins ago














      3












      3








      3






      Assuming you just want to print 1234567890123456789, you can do it with:



      $ printf "%s" $(seq 1 9) $(seq 0 9)
      1234567890123456789$


      That won't have a trailing newline at all though, so maybe you prefer:



      $ printf "%s" $(seq 1 9) $(seq 0 9) $'n'
      1234567890123456789
      $


      A few simpler choices if you don't need to use seq:



      $ perl -le 'print 1..9,0,1..9'
      1234567890123456789
      $ printf "%s" {1..9} {0..9} $'n'
      1234567890123456789


      Since you mentioned portability, I recommend you use the perl approach, or if you are likely to encounter systems without perl, and yet need the same command to run in shells including bash, sh, dash, tcsh etc, try Kamil's approach.






      share|improve this answer














      Assuming you just want to print 1234567890123456789, you can do it with:



      $ printf "%s" $(seq 1 9) $(seq 0 9)
      1234567890123456789$


      That won't have a trailing newline at all though, so maybe you prefer:



      $ printf "%s" $(seq 1 9) $(seq 0 9) $'n'
      1234567890123456789
      $


      A few simpler choices if you don't need to use seq:



      $ perl -le 'print 1..9,0,1..9'
      1234567890123456789
      $ printf "%s" {1..9} {0..9} $'n'
      1234567890123456789


      Since you mentioned portability, I recommend you use the perl approach, or if you are likely to encounter systems without perl, and yet need the same command to run in shells including bash, sh, dash, tcsh etc, try Kamil's approach.







      share|improve this answer














      share|improve this answer



      share|improve this answer








      edited 19 mins ago

























      answered 54 mins ago









      terdon

      128k31249423




      128k31249423












      • Thanks. How portable is that? It worked under Bash. Under tcsh I got an "Illegal variable name" error. Under sh, the 'n' was displayed.
        – GreenMatt
        37 mins ago






      • 1




        @GreenMatt ah, that depends. For extreme portability, you may as well just use the perl one which is shell-agnostic. The printf "%s" $(seq 1 9) $(seq 0 9) will work in any POSIX shell, including sh and dash, but the printf "%s" $(seq 1 9) $(seq 0 9) $'n' will fail in dash. Note that it does work in sh (or at least in bash running as sh, so in POSIX mode), I assume you're running Ubuntu or a simmilar system whose sh is actually dash. tcsh is a strange one and not even trying to be POSIX so don't expect any of the shell-based approaches to work there.
        – terdon
        33 mins ago








      • 1




        @GreenMatt of course, if you need portability, you should also avoid using echo.
        – terdon
        29 mins ago










      • Perl? <shudder>
        – GreenMatt
        16 mins ago


















      • Thanks. How portable is that? It worked under Bash. Under tcsh I got an "Illegal variable name" error. Under sh, the 'n' was displayed.
        – GreenMatt
        37 mins ago






      • 1




        @GreenMatt ah, that depends. For extreme portability, you may as well just use the perl one which is shell-agnostic. The printf "%s" $(seq 1 9) $(seq 0 9) will work in any POSIX shell, including sh and dash, but the printf "%s" $(seq 1 9) $(seq 0 9) $'n' will fail in dash. Note that it does work in sh (or at least in bash running as sh, so in POSIX mode), I assume you're running Ubuntu or a simmilar system whose sh is actually dash. tcsh is a strange one and not even trying to be POSIX so don't expect any of the shell-based approaches to work there.
        – terdon
        33 mins ago








      • 1




        @GreenMatt of course, if you need portability, you should also avoid using echo.
        – terdon
        29 mins ago










      • Perl? <shudder>
        – GreenMatt
        16 mins ago
















      Thanks. How portable is that? It worked under Bash. Under tcsh I got an "Illegal variable name" error. Under sh, the 'n' was displayed.
      – GreenMatt
      37 mins ago




      Thanks. How portable is that? It worked under Bash. Under tcsh I got an "Illegal variable name" error. Under sh, the 'n' was displayed.
      – GreenMatt
      37 mins ago




      1




      1




      @GreenMatt ah, that depends. For extreme portability, you may as well just use the perl one which is shell-agnostic. The printf "%s" $(seq 1 9) $(seq 0 9) will work in any POSIX shell, including sh and dash, but the printf "%s" $(seq 1 9) $(seq 0 9) $'n' will fail in dash. Note that it does work in sh (or at least in bash running as sh, so in POSIX mode), I assume you're running Ubuntu or a simmilar system whose sh is actually dash. tcsh is a strange one and not even trying to be POSIX so don't expect any of the shell-based approaches to work there.
      – terdon
      33 mins ago






      @GreenMatt ah, that depends. For extreme portability, you may as well just use the perl one which is shell-agnostic. The printf "%s" $(seq 1 9) $(seq 0 9) will work in any POSIX shell, including sh and dash, but the printf "%s" $(seq 1 9) $(seq 0 9) $'n' will fail in dash. Note that it does work in sh (or at least in bash running as sh, so in POSIX mode), I assume you're running Ubuntu or a simmilar system whose sh is actually dash. tcsh is a strange one and not even trying to be POSIX so don't expect any of the shell-based approaches to work there.
      – terdon
      33 mins ago






      1




      1




      @GreenMatt of course, if you need portability, you should also avoid using echo.
      – terdon
      29 mins ago




      @GreenMatt of course, if you need portability, you should also avoid using echo.
      – terdon
      29 mins ago












      Perl? <shudder>
      – GreenMatt
      16 mins ago




      Perl? <shudder>
      – GreenMatt
      16 mins ago













      2














      You can remove newlines from any stream with tr -d 'n'. In your case



      (seq -s '' 1 9 ; echo -n 0; seq -s '' 1 9) | tr -d 'n'


      While other answers may concentrate on modifying your original approach, this is the way that should just remove newline characters regardless of what is before |.






      share|improve this answer

















      • 1




        Nice. This also has the benefit of being portable to most (all?) shells. I think the OP wants the final newline, so another option might be ( seq -s '' 1 9 ; echo -n 0 ; seq -s '' 1 9 ) | tr -d 'n' ; printf "n".
        – terdon
        20 mins ago










      • Ah yes, I never think of tr.
        – GreenMatt
        16 mins ago
















      2














      You can remove newlines from any stream with tr -d 'n'. In your case



      (seq -s '' 1 9 ; echo -n 0; seq -s '' 1 9) | tr -d 'n'


      While other answers may concentrate on modifying your original approach, this is the way that should just remove newline characters regardless of what is before |.






      share|improve this answer

















      • 1




        Nice. This also has the benefit of being portable to most (all?) shells. I think the OP wants the final newline, so another option might be ( seq -s '' 1 9 ; echo -n 0 ; seq -s '' 1 9 ) | tr -d 'n' ; printf "n".
        – terdon
        20 mins ago










      • Ah yes, I never think of tr.
        – GreenMatt
        16 mins ago














      2












      2








      2






      You can remove newlines from any stream with tr -d 'n'. In your case



      (seq -s '' 1 9 ; echo -n 0; seq -s '' 1 9) | tr -d 'n'


      While other answers may concentrate on modifying your original approach, this is the way that should just remove newline characters regardless of what is before |.






      share|improve this answer












      You can remove newlines from any stream with tr -d 'n'. In your case



      (seq -s '' 1 9 ; echo -n 0; seq -s '' 1 9) | tr -d 'n'


      While other answers may concentrate on modifying your original approach, this is the way that should just remove newline characters regardless of what is before |.







      share|improve this answer












      share|improve this answer



      share|improve this answer










      answered 31 mins ago









      Kamil Maciorowski

      1,2191625




      1,2191625








      • 1




        Nice. This also has the benefit of being portable to most (all?) shells. I think the OP wants the final newline, so another option might be ( seq -s '' 1 9 ; echo -n 0 ; seq -s '' 1 9 ) | tr -d 'n' ; printf "n".
        – terdon
        20 mins ago










      • Ah yes, I never think of tr.
        – GreenMatt
        16 mins ago














      • 1




        Nice. This also has the benefit of being portable to most (all?) shells. I think the OP wants the final newline, so another option might be ( seq -s '' 1 9 ; echo -n 0 ; seq -s '' 1 9 ) | tr -d 'n' ; printf "n".
        – terdon
        20 mins ago










      • Ah yes, I never think of tr.
        – GreenMatt
        16 mins ago








      1




      1




      Nice. This also has the benefit of being portable to most (all?) shells. I think the OP wants the final newline, so another option might be ( seq -s '' 1 9 ; echo -n 0 ; seq -s '' 1 9 ) | tr -d 'n' ; printf "n".
      – terdon
      20 mins ago




      Nice. This also has the benefit of being portable to most (all?) shells. I think the OP wants the final newline, so another option might be ( seq -s '' 1 9 ; echo -n 0 ; seq -s '' 1 9 ) | tr -d 'n' ; printf "n".
      – terdon
      20 mins ago












      Ah yes, I never think of tr.
      – GreenMatt
      16 mins ago




      Ah yes, I never think of tr.
      – GreenMatt
      16 mins ago











      1














      Consider also:



      printf '%d' $(seq -w 1 1 99 | cut -c2)


      We generate the numbers 01..99, zero-padded (-w), then strip off the tens-place. Those ones-place numbers are then sent to printf to be printed individually.



      To get your desired output, use 20 instead:



      $ printf '%d' $(seq -w 1 1 20 | cut -c2)
      12345678901234567890





      share|improve this answer




























        1














        Consider also:



        printf '%d' $(seq -w 1 1 99 | cut -c2)


        We generate the numbers 01..99, zero-padded (-w), then strip off the tens-place. Those ones-place numbers are then sent to printf to be printed individually.



        To get your desired output, use 20 instead:



        $ printf '%d' $(seq -w 1 1 20 | cut -c2)
        12345678901234567890





        share|improve this answer


























          1












          1








          1






          Consider also:



          printf '%d' $(seq -w 1 1 99 | cut -c2)


          We generate the numbers 01..99, zero-padded (-w), then strip off the tens-place. Those ones-place numbers are then sent to printf to be printed individually.



          To get your desired output, use 20 instead:



          $ printf '%d' $(seq -w 1 1 20 | cut -c2)
          12345678901234567890





          share|improve this answer














          Consider also:



          printf '%d' $(seq -w 1 1 99 | cut -c2)


          We generate the numbers 01..99, zero-padded (-w), then strip off the tens-place. Those ones-place numbers are then sent to printf to be printed individually.



          To get your desired output, use 20 instead:



          $ printf '%d' $(seq -w 1 1 20 | cut -c2)
          12345678901234567890






          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited 38 mins ago









          terdon

          128k31249423




          128k31249423










          answered 45 mins ago









          Jeff Schaller

          38.8k1053125




          38.8k1053125























              0














              I would like to reinforce the answer of @terdon, but propose a solution that works with the tcsh shell as well.
              Unfortunately, I didn't have enough reputation to write this as a comment:



              printf "%sn" "seq 1 9` `seq 0 9`"`



              The backtick - like all methods of command-line substitution -, should cut the trailing newline. Then, printf's own backslash-escape interpretation is used, instead of the ANSI string expansion used in terdon's answer.



              It also works like this, by allowing printf to interpret all escape sequences after substitution with the format specifiers (%b specifier):



              printf "%b" "seq 1 9` `seq 0 9`n"`






              share|improve this answer


























                0














                I would like to reinforce the answer of @terdon, but propose a solution that works with the tcsh shell as well.
                Unfortunately, I didn't have enough reputation to write this as a comment:



                printf "%sn" "seq 1 9` `seq 0 9`"`



                The backtick - like all methods of command-line substitution -, should cut the trailing newline. Then, printf's own backslash-escape interpretation is used, instead of the ANSI string expansion used in terdon's answer.



                It also works like this, by allowing printf to interpret all escape sequences after substitution with the format specifiers (%b specifier):



                printf "%b" "seq 1 9` `seq 0 9`n"`






                share|improve this answer
























                  0












                  0








                  0






                  I would like to reinforce the answer of @terdon, but propose a solution that works with the tcsh shell as well.
                  Unfortunately, I didn't have enough reputation to write this as a comment:



                  printf "%sn" "seq 1 9` `seq 0 9`"`



                  The backtick - like all methods of command-line substitution -, should cut the trailing newline. Then, printf's own backslash-escape interpretation is used, instead of the ANSI string expansion used in terdon's answer.



                  It also works like this, by allowing printf to interpret all escape sequences after substitution with the format specifiers (%b specifier):



                  printf "%b" "seq 1 9` `seq 0 9`n"`






                  share|improve this answer












                  I would like to reinforce the answer of @terdon, but propose a solution that works with the tcsh shell as well.
                  Unfortunately, I didn't have enough reputation to write this as a comment:



                  printf "%sn" "seq 1 9` `seq 0 9`"`



                  The backtick - like all methods of command-line substitution -, should cut the trailing newline. Then, printf's own backslash-escape interpretation is used, instead of the ANSI string expansion used in terdon's answer.



                  It also works like this, by allowing printf to interpret all escape sequences after substitution with the format specifiers (%b specifier):



                  printf "%b" "seq 1 9` `seq 0 9`n"`







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered 16 mins ago









                  Larry

                  463




                  463






























                      draft saved

                      draft discarded




















































                      Thanks for contributing an answer to Unix & Linux Stack Exchange!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid



                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.


                      To learn more, see our tips on writing great answers.





                      Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                      Please pay close attention to the following guidance:


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid



                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.


                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function () {
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f492315%2fhow-to-avoid-printing-a-newline-when-seq-completes%23new-answer', 'question_page');
                      }
                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      Understanding the information contained in the Deep Space Network XML data?

                      Ross-on-Wye

                      Eastern Orthodox Church