How to delete line if longer than XY?











up vote
17
down vote

favorite
2












How can i delete a line if it is longer than e.g.: 2048 chars?










share|improve this question
























  • Do you insist on using sed? This is easy, for example in python. And no doubt even easier in perl. Though the question is not terribly well defined. Copy a file, removing all lines longer than 2048, or something else?
    – Faheem Mitha
    Mar 23 '11 at 18:21

















up vote
17
down vote

favorite
2












How can i delete a line if it is longer than e.g.: 2048 chars?










share|improve this question
























  • Do you insist on using sed? This is easy, for example in python. And no doubt even easier in perl. Though the question is not terribly well defined. Copy a file, removing all lines longer than 2048, or something else?
    – Faheem Mitha
    Mar 23 '11 at 18:21















up vote
17
down vote

favorite
2









up vote
17
down vote

favorite
2






2





How can i delete a line if it is longer than e.g.: 2048 chars?










share|improve this question















How can i delete a line if it is longer than e.g.: 2048 chars?







sed






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Jan 29 '14 at 17:27









jlliagre

46.1k783132




46.1k783132










asked Mar 23 '11 at 18:09









LanceBaynes

10.2k75192322




10.2k75192322












  • Do you insist on using sed? This is easy, for example in python. And no doubt even easier in perl. Though the question is not terribly well defined. Copy a file, removing all lines longer than 2048, or something else?
    – Faheem Mitha
    Mar 23 '11 at 18:21




















  • Do you insist on using sed? This is easy, for example in python. And no doubt even easier in perl. Though the question is not terribly well defined. Copy a file, removing all lines longer than 2048, or something else?
    – Faheem Mitha
    Mar 23 '11 at 18:21


















Do you insist on using sed? This is easy, for example in python. And no doubt even easier in perl. Though the question is not terribly well defined. Copy a file, removing all lines longer than 2048, or something else?
– Faheem Mitha
Mar 23 '11 at 18:21






Do you insist on using sed? This is easy, for example in python. And no doubt even easier in perl. Though the question is not terribly well defined. Copy a file, removing all lines longer than 2048, or something else?
– Faheem Mitha
Mar 23 '11 at 18:21












6 Answers
6






active

oldest

votes

















up vote
19
down vote



accepted










sed '/^.{2048}./d' input.txt > output.txt





share|improve this answer



















  • 2




    I get the error message sed: 1: "/^.{2048}..*/d": RE error: invalid repetition count(s) (Mac OS X)
    – wedi
    Oct 13 '14 at 15:47






  • 1




    @wedi you probably want to install the GNU version instead of the BSD version that ships with Mac. This is easy with brew
    – Freedom_Ben
    Jul 6 '16 at 0:00




















up vote
6
down vote













Here's a solution which deletes lines that has 2049 or more characters:



sed -E '/^.{2049}/d' <file.in >file.out


Strictly speaking, the ^ anchor is not needed.



With awk, printing lines of length 2048 or shorter:



awk 'length <= 2048' <file.in >file.out





share|improve this answer



















  • 1




    I get the error message sed: 1: "/^.{400,}$/d": RE error: invalid repetition count(s) (Mac OS X)
    – wedi
    Oct 13 '14 at 15:47








  • 1




    @wedi Now updated and tested on macOS Mojave.
    – Kusalananda
    Nov 29 at 23:20


















up vote
2
down vote













Something like this should work in Python.



of = open("orig")
nf = open("new",'w')
for line in of:
if len(line) < 2048:
nf.write(line)
of.close()
nf.close()





share|improve this answer

















  • 1




    Personally, @Faheem, I prefer your answer. The reason why is that it was very easy for me to turn it around into 'delete all lines smaller than x'. I don't use Python all the time, but when I do I always feel I should learn it well.
    – ixtmixilix
    May 22 '11 at 18:18










  • @ixtmixilix: Yes, using a full featured language like Python is pretty flexible. Thanks for the comment.
    – Faheem Mitha
    May 24 '11 at 16:46


















up vote
1
down vote













perl -lne "length < 2048 && print" infile > outfile





share|improve this answer





















  • +1 The -l isn't needed, though.
    – Joseph R.
    Jan 29 '14 at 17:22












  • Does not work for me. Perl v5.16.2. Warning: Use of "length" without parentheses is ambiguous at -e line 1. Unterminated <> operator at -e line 1.
    – wedi
    Oct 13 '14 at 15:51










  • You may try length($_) > 2048 && print. length is a shortcut for length($_) anyway.
    – MaratC
    Nov 17 '14 at 12:10


















up vote
0
down vote













The above answers do not work for me on Mac OS X 10.9.5.



The following code does work:



sed '/.{2048}/d'.



Although not asked, but provided for reference, the reverse can be achieved the following code:



sed '/.{2048}/!d'.






share|improve this answer























  • lol, but sed: 1: "/.{2048}/d": RE error: invalid repetition count(s) (Mac OS X, 10.10.4)
    – alex gray
    Jul 24 '15 at 13:29










  • Ah. I installed the GNU version instead of the BSD version that ships with Mac as @Freedom_Ben suggested above. But Kusalananda found the switch to enable extended regex. So you should go with his solution if you still have that problem. ;)
    – wedi
    Nov 30 at 19:40


















up vote
0
down vote













With gnu-sed, you may use the -r flag, to avoid typing the backslashes, and a comma, to define an open interval:



sed -r  "/.{2049,}/d" input.txt > output.txt


with:




  • x{2049} meaning exactly 2049 xs

  • x{2049,3072} meaning from 2049 to 3072 xs

  • x{2049,} meaning at least 2049 xs

  • x{,2049} meaning at most 2049 xs


For the intervals, to not match bigger patterns, you would need line anchors like



sed -r  "/^.{32,64}$/d" input.txt > output.txt 





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',
    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%2f9981%2fhow-to-delete-line-if-longer-than-xy%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    6 Answers
    6






    active

    oldest

    votes








    6 Answers
    6






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    19
    down vote



    accepted










    sed '/^.{2048}./d' input.txt > output.txt





    share|improve this answer



















    • 2




      I get the error message sed: 1: "/^.{2048}..*/d": RE error: invalid repetition count(s) (Mac OS X)
      – wedi
      Oct 13 '14 at 15:47






    • 1




      @wedi you probably want to install the GNU version instead of the BSD version that ships with Mac. This is easy with brew
      – Freedom_Ben
      Jul 6 '16 at 0:00

















    up vote
    19
    down vote



    accepted










    sed '/^.{2048}./d' input.txt > output.txt





    share|improve this answer



















    • 2




      I get the error message sed: 1: "/^.{2048}..*/d": RE error: invalid repetition count(s) (Mac OS X)
      – wedi
      Oct 13 '14 at 15:47






    • 1




      @wedi you probably want to install the GNU version instead of the BSD version that ships with Mac. This is easy with brew
      – Freedom_Ben
      Jul 6 '16 at 0:00















    up vote
    19
    down vote



    accepted







    up vote
    19
    down vote



    accepted






    sed '/^.{2048}./d' input.txt > output.txt





    share|improve this answer














    sed '/^.{2048}./d' input.txt > output.txt






    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited Nov 1 '16 at 0:43









    Wildcard

    22.5k960164




    22.5k960164










    answered Mar 23 '11 at 18:26









    forcefsck

    5,6061931




    5,6061931








    • 2




      I get the error message sed: 1: "/^.{2048}..*/d": RE error: invalid repetition count(s) (Mac OS X)
      – wedi
      Oct 13 '14 at 15:47






    • 1




      @wedi you probably want to install the GNU version instead of the BSD version that ships with Mac. This is easy with brew
      – Freedom_Ben
      Jul 6 '16 at 0:00
















    • 2




      I get the error message sed: 1: "/^.{2048}..*/d": RE error: invalid repetition count(s) (Mac OS X)
      – wedi
      Oct 13 '14 at 15:47






    • 1




      @wedi you probably want to install the GNU version instead of the BSD version that ships with Mac. This is easy with brew
      – Freedom_Ben
      Jul 6 '16 at 0:00










    2




    2




    I get the error message sed: 1: "/^.{2048}..*/d": RE error: invalid repetition count(s) (Mac OS X)
    – wedi
    Oct 13 '14 at 15:47




    I get the error message sed: 1: "/^.{2048}..*/d": RE error: invalid repetition count(s) (Mac OS X)
    – wedi
    Oct 13 '14 at 15:47




    1




    1




    @wedi you probably want to install the GNU version instead of the BSD version that ships with Mac. This is easy with brew
    – Freedom_Ben
    Jul 6 '16 at 0:00






    @wedi you probably want to install the GNU version instead of the BSD version that ships with Mac. This is easy with brew
    – Freedom_Ben
    Jul 6 '16 at 0:00














    up vote
    6
    down vote













    Here's a solution which deletes lines that has 2049 or more characters:



    sed -E '/^.{2049}/d' <file.in >file.out


    Strictly speaking, the ^ anchor is not needed.



    With awk, printing lines of length 2048 or shorter:



    awk 'length <= 2048' <file.in >file.out





    share|improve this answer



















    • 1




      I get the error message sed: 1: "/^.{400,}$/d": RE error: invalid repetition count(s) (Mac OS X)
      – wedi
      Oct 13 '14 at 15:47








    • 1




      @wedi Now updated and tested on macOS Mojave.
      – Kusalananda
      Nov 29 at 23:20















    up vote
    6
    down vote













    Here's a solution which deletes lines that has 2049 or more characters:



    sed -E '/^.{2049}/d' <file.in >file.out


    Strictly speaking, the ^ anchor is not needed.



    With awk, printing lines of length 2048 or shorter:



    awk 'length <= 2048' <file.in >file.out





    share|improve this answer



















    • 1




      I get the error message sed: 1: "/^.{400,}$/d": RE error: invalid repetition count(s) (Mac OS X)
      – wedi
      Oct 13 '14 at 15:47








    • 1




      @wedi Now updated and tested on macOS Mojave.
      – Kusalananda
      Nov 29 at 23:20













    up vote
    6
    down vote










    up vote
    6
    down vote









    Here's a solution which deletes lines that has 2049 or more characters:



    sed -E '/^.{2049}/d' <file.in >file.out


    Strictly speaking, the ^ anchor is not needed.



    With awk, printing lines of length 2048 or shorter:



    awk 'length <= 2048' <file.in >file.out





    share|improve this answer














    Here's a solution which deletes lines that has 2049 or more characters:



    sed -E '/^.{2049}/d' <file.in >file.out


    Strictly speaking, the ^ anchor is not needed.



    With awk, printing lines of length 2048 or shorter:



    awk 'length <= 2048' <file.in >file.out






    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited Nov 29 at 23:19

























    answered Sep 7 '11 at 10:13









    Kusalananda

    118k16223363




    118k16223363








    • 1




      I get the error message sed: 1: "/^.{400,}$/d": RE error: invalid repetition count(s) (Mac OS X)
      – wedi
      Oct 13 '14 at 15:47








    • 1




      @wedi Now updated and tested on macOS Mojave.
      – Kusalananda
      Nov 29 at 23:20














    • 1




      I get the error message sed: 1: "/^.{400,}$/d": RE error: invalid repetition count(s) (Mac OS X)
      – wedi
      Oct 13 '14 at 15:47








    • 1




      @wedi Now updated and tested on macOS Mojave.
      – Kusalananda
      Nov 29 at 23:20








    1




    1




    I get the error message sed: 1: "/^.{400,}$/d": RE error: invalid repetition count(s) (Mac OS X)
    – wedi
    Oct 13 '14 at 15:47






    I get the error message sed: 1: "/^.{400,}$/d": RE error: invalid repetition count(s) (Mac OS X)
    – wedi
    Oct 13 '14 at 15:47






    1




    1




    @wedi Now updated and tested on macOS Mojave.
    – Kusalananda
    Nov 29 at 23:20




    @wedi Now updated and tested on macOS Mojave.
    – Kusalananda
    Nov 29 at 23:20










    up vote
    2
    down vote













    Something like this should work in Python.



    of = open("orig")
    nf = open("new",'w')
    for line in of:
    if len(line) < 2048:
    nf.write(line)
    of.close()
    nf.close()





    share|improve this answer

















    • 1




      Personally, @Faheem, I prefer your answer. The reason why is that it was very easy for me to turn it around into 'delete all lines smaller than x'. I don't use Python all the time, but when I do I always feel I should learn it well.
      – ixtmixilix
      May 22 '11 at 18:18










    • @ixtmixilix: Yes, using a full featured language like Python is pretty flexible. Thanks for the comment.
      – Faheem Mitha
      May 24 '11 at 16:46















    up vote
    2
    down vote













    Something like this should work in Python.



    of = open("orig")
    nf = open("new",'w')
    for line in of:
    if len(line) < 2048:
    nf.write(line)
    of.close()
    nf.close()





    share|improve this answer

















    • 1




      Personally, @Faheem, I prefer your answer. The reason why is that it was very easy for me to turn it around into 'delete all lines smaller than x'. I don't use Python all the time, but when I do I always feel I should learn it well.
      – ixtmixilix
      May 22 '11 at 18:18










    • @ixtmixilix: Yes, using a full featured language like Python is pretty flexible. Thanks for the comment.
      – Faheem Mitha
      May 24 '11 at 16:46













    up vote
    2
    down vote










    up vote
    2
    down vote









    Something like this should work in Python.



    of = open("orig")
    nf = open("new",'w')
    for line in of:
    if len(line) < 2048:
    nf.write(line)
    of.close()
    nf.close()





    share|improve this answer












    Something like this should work in Python.



    of = open("orig")
    nf = open("new",'w')
    for line in of:
    if len(line) < 2048:
    nf.write(line)
    of.close()
    nf.close()






    share|improve this answer












    share|improve this answer



    share|improve this answer










    answered Mar 23 '11 at 18:33









    Faheem Mitha

    22.6k1879134




    22.6k1879134








    • 1




      Personally, @Faheem, I prefer your answer. The reason why is that it was very easy for me to turn it around into 'delete all lines smaller than x'. I don't use Python all the time, but when I do I always feel I should learn it well.
      – ixtmixilix
      May 22 '11 at 18:18










    • @ixtmixilix: Yes, using a full featured language like Python is pretty flexible. Thanks for the comment.
      – Faheem Mitha
      May 24 '11 at 16:46














    • 1




      Personally, @Faheem, I prefer your answer. The reason why is that it was very easy for me to turn it around into 'delete all lines smaller than x'. I don't use Python all the time, but when I do I always feel I should learn it well.
      – ixtmixilix
      May 22 '11 at 18:18










    • @ixtmixilix: Yes, using a full featured language like Python is pretty flexible. Thanks for the comment.
      – Faheem Mitha
      May 24 '11 at 16:46








    1




    1




    Personally, @Faheem, I prefer your answer. The reason why is that it was very easy for me to turn it around into 'delete all lines smaller than x'. I don't use Python all the time, but when I do I always feel I should learn it well.
    – ixtmixilix
    May 22 '11 at 18:18




    Personally, @Faheem, I prefer your answer. The reason why is that it was very easy for me to turn it around into 'delete all lines smaller than x'. I don't use Python all the time, but when I do I always feel I should learn it well.
    – ixtmixilix
    May 22 '11 at 18:18












    @ixtmixilix: Yes, using a full featured language like Python is pretty flexible. Thanks for the comment.
    – Faheem Mitha
    May 24 '11 at 16:46




    @ixtmixilix: Yes, using a full featured language like Python is pretty flexible. Thanks for the comment.
    – Faheem Mitha
    May 24 '11 at 16:46










    up vote
    1
    down vote













    perl -lne "length < 2048 && print" infile > outfile





    share|improve this answer





















    • +1 The -l isn't needed, though.
      – Joseph R.
      Jan 29 '14 at 17:22












    • Does not work for me. Perl v5.16.2. Warning: Use of "length" without parentheses is ambiguous at -e line 1. Unterminated <> operator at -e line 1.
      – wedi
      Oct 13 '14 at 15:51










    • You may try length($_) > 2048 && print. length is a shortcut for length($_) anyway.
      – MaratC
      Nov 17 '14 at 12:10















    up vote
    1
    down vote













    perl -lne "length < 2048 && print" infile > outfile





    share|improve this answer





















    • +1 The -l isn't needed, though.
      – Joseph R.
      Jan 29 '14 at 17:22












    • Does not work for me. Perl v5.16.2. Warning: Use of "length" without parentheses is ambiguous at -e line 1. Unterminated <> operator at -e line 1.
      – wedi
      Oct 13 '14 at 15:51










    • You may try length($_) > 2048 && print. length is a shortcut for length($_) anyway.
      – MaratC
      Nov 17 '14 at 12:10













    up vote
    1
    down vote










    up vote
    1
    down vote









    perl -lne "length < 2048 && print" infile > outfile





    share|improve this answer












    perl -lne "length < 2048 && print" infile > outfile






    share|improve this answer












    share|improve this answer



    share|improve this answer










    answered Jan 29 '14 at 17:14









    MaratC

    1111




    1111












    • +1 The -l isn't needed, though.
      – Joseph R.
      Jan 29 '14 at 17:22












    • Does not work for me. Perl v5.16.2. Warning: Use of "length" without parentheses is ambiguous at -e line 1. Unterminated <> operator at -e line 1.
      – wedi
      Oct 13 '14 at 15:51










    • You may try length($_) > 2048 && print. length is a shortcut for length($_) anyway.
      – MaratC
      Nov 17 '14 at 12:10


















    • +1 The -l isn't needed, though.
      – Joseph R.
      Jan 29 '14 at 17:22












    • Does not work for me. Perl v5.16.2. Warning: Use of "length" without parentheses is ambiguous at -e line 1. Unterminated <> operator at -e line 1.
      – wedi
      Oct 13 '14 at 15:51










    • You may try length($_) > 2048 && print. length is a shortcut for length($_) anyway.
      – MaratC
      Nov 17 '14 at 12:10
















    +1 The -l isn't needed, though.
    – Joseph R.
    Jan 29 '14 at 17:22






    +1 The -l isn't needed, though.
    – Joseph R.
    Jan 29 '14 at 17:22














    Does not work for me. Perl v5.16.2. Warning: Use of "length" without parentheses is ambiguous at -e line 1. Unterminated <> operator at -e line 1.
    – wedi
    Oct 13 '14 at 15:51




    Does not work for me. Perl v5.16.2. Warning: Use of "length" without parentheses is ambiguous at -e line 1. Unterminated <> operator at -e line 1.
    – wedi
    Oct 13 '14 at 15:51












    You may try length($_) > 2048 && print. length is a shortcut for length($_) anyway.
    – MaratC
    Nov 17 '14 at 12:10




    You may try length($_) > 2048 && print. length is a shortcut for length($_) anyway.
    – MaratC
    Nov 17 '14 at 12:10










    up vote
    0
    down vote













    The above answers do not work for me on Mac OS X 10.9.5.



    The following code does work:



    sed '/.{2048}/d'.



    Although not asked, but provided for reference, the reverse can be achieved the following code:



    sed '/.{2048}/!d'.






    share|improve this answer























    • lol, but sed: 1: "/.{2048}/d": RE error: invalid repetition count(s) (Mac OS X, 10.10.4)
      – alex gray
      Jul 24 '15 at 13:29










    • Ah. I installed the GNU version instead of the BSD version that ships with Mac as @Freedom_Ben suggested above. But Kusalananda found the switch to enable extended regex. So you should go with his solution if you still have that problem. ;)
      – wedi
      Nov 30 at 19:40















    up vote
    0
    down vote













    The above answers do not work for me on Mac OS X 10.9.5.



    The following code does work:



    sed '/.{2048}/d'.



    Although not asked, but provided for reference, the reverse can be achieved the following code:



    sed '/.{2048}/!d'.






    share|improve this answer























    • lol, but sed: 1: "/.{2048}/d": RE error: invalid repetition count(s) (Mac OS X, 10.10.4)
      – alex gray
      Jul 24 '15 at 13:29










    • Ah. I installed the GNU version instead of the BSD version that ships with Mac as @Freedom_Ben suggested above. But Kusalananda found the switch to enable extended regex. So you should go with his solution if you still have that problem. ;)
      – wedi
      Nov 30 at 19:40













    up vote
    0
    down vote










    up vote
    0
    down vote









    The above answers do not work for me on Mac OS X 10.9.5.



    The following code does work:



    sed '/.{2048}/d'.



    Although not asked, but provided for reference, the reverse can be achieved the following code:



    sed '/.{2048}/!d'.






    share|improve this answer














    The above answers do not work for me on Mac OS X 10.9.5.



    The following code does work:



    sed '/.{2048}/d'.



    Although not asked, but provided for reference, the reverse can be achieved the following code:



    sed '/.{2048}/!d'.







    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited Sep 15 '16 at 21:28









    DomainsFeatured

    1348




    1348










    answered Oct 13 '14 at 16:02









    wedi

    1012




    1012












    • lol, but sed: 1: "/.{2048}/d": RE error: invalid repetition count(s) (Mac OS X, 10.10.4)
      – alex gray
      Jul 24 '15 at 13:29










    • Ah. I installed the GNU version instead of the BSD version that ships with Mac as @Freedom_Ben suggested above. But Kusalananda found the switch to enable extended regex. So you should go with his solution if you still have that problem. ;)
      – wedi
      Nov 30 at 19:40


















    • lol, but sed: 1: "/.{2048}/d": RE error: invalid repetition count(s) (Mac OS X, 10.10.4)
      – alex gray
      Jul 24 '15 at 13:29










    • Ah. I installed the GNU version instead of the BSD version that ships with Mac as @Freedom_Ben suggested above. But Kusalananda found the switch to enable extended regex. So you should go with his solution if you still have that problem. ;)
      – wedi
      Nov 30 at 19:40
















    lol, but sed: 1: "/.{2048}/d": RE error: invalid repetition count(s) (Mac OS X, 10.10.4)
    – alex gray
    Jul 24 '15 at 13:29




    lol, but sed: 1: "/.{2048}/d": RE error: invalid repetition count(s) (Mac OS X, 10.10.4)
    – alex gray
    Jul 24 '15 at 13:29












    Ah. I installed the GNU version instead of the BSD version that ships with Mac as @Freedom_Ben suggested above. But Kusalananda found the switch to enable extended regex. So you should go with his solution if you still have that problem. ;)
    – wedi
    Nov 30 at 19:40




    Ah. I installed the GNU version instead of the BSD version that ships with Mac as @Freedom_Ben suggested above. But Kusalananda found the switch to enable extended regex. So you should go with his solution if you still have that problem. ;)
    – wedi
    Nov 30 at 19:40










    up vote
    0
    down vote













    With gnu-sed, you may use the -r flag, to avoid typing the backslashes, and a comma, to define an open interval:



    sed -r  "/.{2049,}/d" input.txt > output.txt


    with:




    • x{2049} meaning exactly 2049 xs

    • x{2049,3072} meaning from 2049 to 3072 xs

    • x{2049,} meaning at least 2049 xs

    • x{,2049} meaning at most 2049 xs


    For the intervals, to not match bigger patterns, you would need line anchors like



    sed -r  "/^.{32,64}$/d" input.txt > output.txt 





    share|improve this answer

























      up vote
      0
      down vote













      With gnu-sed, you may use the -r flag, to avoid typing the backslashes, and a comma, to define an open interval:



      sed -r  "/.{2049,}/d" input.txt > output.txt


      with:




      • x{2049} meaning exactly 2049 xs

      • x{2049,3072} meaning from 2049 to 3072 xs

      • x{2049,} meaning at least 2049 xs

      • x{,2049} meaning at most 2049 xs


      For the intervals, to not match bigger patterns, you would need line anchors like



      sed -r  "/^.{32,64}$/d" input.txt > output.txt 





      share|improve this answer























        up vote
        0
        down vote










        up vote
        0
        down vote









        With gnu-sed, you may use the -r flag, to avoid typing the backslashes, and a comma, to define an open interval:



        sed -r  "/.{2049,}/d" input.txt > output.txt


        with:




        • x{2049} meaning exactly 2049 xs

        • x{2049,3072} meaning from 2049 to 3072 xs

        • x{2049,} meaning at least 2049 xs

        • x{,2049} meaning at most 2049 xs


        For the intervals, to not match bigger patterns, you would need line anchors like



        sed -r  "/^.{32,64}$/d" input.txt > output.txt 





        share|improve this answer












        With gnu-sed, you may use the -r flag, to avoid typing the backslashes, and a comma, to define an open interval:



        sed -r  "/.{2049,}/d" input.txt > output.txt


        with:




        • x{2049} meaning exactly 2049 xs

        • x{2049,3072} meaning from 2049 to 3072 xs

        • x{2049,} meaning at least 2049 xs

        • x{,2049} meaning at most 2049 xs


        For the intervals, to not match bigger patterns, you would need line anchors like



        sed -r  "/^.{32,64}$/d" input.txt > output.txt 






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 30 at 0:17









        user unknown

        7,20812148




        7,20812148






























            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%2f9981%2fhow-to-delete-line-if-longer-than-xy%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

            Accessing regular linux commands in Huawei's Dopra Linux

            Can't connect RFCOMM socket: Host is down

            Kernel panic - not syncing: Fatal Exception in Interrupt