How to filter text, removing lines where a specific position is empty












0














# lshw -c network -businfo
Bus info Device Class Description
========================================================
pci@0000:03:00.0 enp3s0 network I210 Gigabit Network Connection
pci@0000:04:00.0 mec_test_1 network I350 Gigabit Network Connection
pci@0000:04:00.1 mec_test_2 network I350 Gigabit Network Connection
pci@0000:04:00.2 mec_test_3 network I350 Gigabit Network Connection
pci@0000:04:00.3 mec_test_4 network I350 Gigabit Network Connection
pci@0000:b5:00.0 network Intel Corporation
pci@0000:b5:00.1 network Intel Corporation
pci@0000:b5:00.2 mec_test_5 network Intel Corporation
pci@0000:b5:00.3 enp181s0f3 network Intel Corporation


If I want to pass Device is empty, how to do that?
like



Bus info          Device      Class          Description
========================================================
pci@0000:03:00.0 enp3s0 network I210 Gigabit Network Connection
pci@0000:04:00.0 mec_test_1 network I350 Gigabit Network Connection
pci@0000:04:00.1 mec_test_2 network I350 Gigabit Network Connection
pci@0000:04:00.2 mec_test_3 network I350 Gigabit Network Connection
pci@0000:04:00.3 mec_test_4 network I350 Gigabit Network Connection
pci@0000:b5:00.2 mec_test_5 network Intel Corporation
pci@0000:b5:00.3 enp181s0f3 network Intel Corporation









share|improve this question





























    0














    # lshw -c network -businfo
    Bus info Device Class Description
    ========================================================
    pci@0000:03:00.0 enp3s0 network I210 Gigabit Network Connection
    pci@0000:04:00.0 mec_test_1 network I350 Gigabit Network Connection
    pci@0000:04:00.1 mec_test_2 network I350 Gigabit Network Connection
    pci@0000:04:00.2 mec_test_3 network I350 Gigabit Network Connection
    pci@0000:04:00.3 mec_test_4 network I350 Gigabit Network Connection
    pci@0000:b5:00.0 network Intel Corporation
    pci@0000:b5:00.1 network Intel Corporation
    pci@0000:b5:00.2 mec_test_5 network Intel Corporation
    pci@0000:b5:00.3 enp181s0f3 network Intel Corporation


    If I want to pass Device is empty, how to do that?
    like



    Bus info          Device      Class          Description
    ========================================================
    pci@0000:03:00.0 enp3s0 network I210 Gigabit Network Connection
    pci@0000:04:00.0 mec_test_1 network I350 Gigabit Network Connection
    pci@0000:04:00.1 mec_test_2 network I350 Gigabit Network Connection
    pci@0000:04:00.2 mec_test_3 network I350 Gigabit Network Connection
    pci@0000:04:00.3 mec_test_4 network I350 Gigabit Network Connection
    pci@0000:b5:00.2 mec_test_5 network Intel Corporation
    pci@0000:b5:00.3 enp181s0f3 network Intel Corporation









    share|improve this question



























      0












      0








      0







      # lshw -c network -businfo
      Bus info Device Class Description
      ========================================================
      pci@0000:03:00.0 enp3s0 network I210 Gigabit Network Connection
      pci@0000:04:00.0 mec_test_1 network I350 Gigabit Network Connection
      pci@0000:04:00.1 mec_test_2 network I350 Gigabit Network Connection
      pci@0000:04:00.2 mec_test_3 network I350 Gigabit Network Connection
      pci@0000:04:00.3 mec_test_4 network I350 Gigabit Network Connection
      pci@0000:b5:00.0 network Intel Corporation
      pci@0000:b5:00.1 network Intel Corporation
      pci@0000:b5:00.2 mec_test_5 network Intel Corporation
      pci@0000:b5:00.3 enp181s0f3 network Intel Corporation


      If I want to pass Device is empty, how to do that?
      like



      Bus info          Device      Class          Description
      ========================================================
      pci@0000:03:00.0 enp3s0 network I210 Gigabit Network Connection
      pci@0000:04:00.0 mec_test_1 network I350 Gigabit Network Connection
      pci@0000:04:00.1 mec_test_2 network I350 Gigabit Network Connection
      pci@0000:04:00.2 mec_test_3 network I350 Gigabit Network Connection
      pci@0000:04:00.3 mec_test_4 network I350 Gigabit Network Connection
      pci@0000:b5:00.2 mec_test_5 network Intel Corporation
      pci@0000:b5:00.3 enp181s0f3 network Intel Corporation









      share|improve this question















      # lshw -c network -businfo
      Bus info Device Class Description
      ========================================================
      pci@0000:03:00.0 enp3s0 network I210 Gigabit Network Connection
      pci@0000:04:00.0 mec_test_1 network I350 Gigabit Network Connection
      pci@0000:04:00.1 mec_test_2 network I350 Gigabit Network Connection
      pci@0000:04:00.2 mec_test_3 network I350 Gigabit Network Connection
      pci@0000:04:00.3 mec_test_4 network I350 Gigabit Network Connection
      pci@0000:b5:00.0 network Intel Corporation
      pci@0000:b5:00.1 network Intel Corporation
      pci@0000:b5:00.2 mec_test_5 network Intel Corporation
      pci@0000:b5:00.3 enp181s0f3 network Intel Corporation


      If I want to pass Device is empty, how to do that?
      like



      Bus info          Device      Class          Description
      ========================================================
      pci@0000:03:00.0 enp3s0 network I210 Gigabit Network Connection
      pci@0000:04:00.0 mec_test_1 network I350 Gigabit Network Connection
      pci@0000:04:00.1 mec_test_2 network I350 Gigabit Network Connection
      pci@0000:04:00.2 mec_test_3 network I350 Gigabit Network Connection
      pci@0000:04:00.3 mec_test_4 network I350 Gigabit Network Connection
      pci@0000:b5:00.2 mec_test_5 network Intel Corporation
      pci@0000:b5:00.3 enp181s0f3 network Intel Corporation






      text-processing grep text-formatting






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Dec 19 '18 at 1:45









      G-Man

      12.9k93364




      12.9k93364










      asked Dec 19 '18 at 1:33









      bohan Chen

      1




      1






















          1 Answer
          1






          active

          oldest

          votes


















          0














          One simple way would be to ask grep to look for a non-space character in the 19th column:



          lshw -c network -businfo | grep -E '^.{18}[^ ]'


          The grep command is looking for pattern that's anchored to the beginning of the line; there follows 18 of any character, then something that's not a space.



          Alternatively, if there's a TAB there instead of space, use the [:space:] class:



          lshw -c network -businfo | grep -E '^.{18}[^[:space:]]'





          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%2f489800%2fhow-to-filter-text-removing-lines-where-a-specific-position-is-empty%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            One simple way would be to ask grep to look for a non-space character in the 19th column:



            lshw -c network -businfo | grep -E '^.{18}[^ ]'


            The grep command is looking for pattern that's anchored to the beginning of the line; there follows 18 of any character, then something that's not a space.



            Alternatively, if there's a TAB there instead of space, use the [:space:] class:



            lshw -c network -businfo | grep -E '^.{18}[^[:space:]]'





            share|improve this answer


























              0














              One simple way would be to ask grep to look for a non-space character in the 19th column:



              lshw -c network -businfo | grep -E '^.{18}[^ ]'


              The grep command is looking for pattern that's anchored to the beginning of the line; there follows 18 of any character, then something that's not a space.



              Alternatively, if there's a TAB there instead of space, use the [:space:] class:



              lshw -c network -businfo | grep -E '^.{18}[^[:space:]]'





              share|improve this answer
























                0












                0








                0






                One simple way would be to ask grep to look for a non-space character in the 19th column:



                lshw -c network -businfo | grep -E '^.{18}[^ ]'


                The grep command is looking for pattern that's anchored to the beginning of the line; there follows 18 of any character, then something that's not a space.



                Alternatively, if there's a TAB there instead of space, use the [:space:] class:



                lshw -c network -businfo | grep -E '^.{18}[^[:space:]]'





                share|improve this answer












                One simple way would be to ask grep to look for a non-space character in the 19th column:



                lshw -c network -businfo | grep -E '^.{18}[^ ]'


                The grep command is looking for pattern that's anchored to the beginning of the line; there follows 18 of any character, then something that's not a space.



                Alternatively, if there's a TAB there instead of space, use the [:space:] class:



                lshw -c network -businfo | grep -E '^.{18}[^[:space:]]'






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Dec 19 '18 at 2:10









                Jeff Schaller

                38.7k1053125




                38.7k1053125






























                    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%2f489800%2fhow-to-filter-text-removing-lines-where-a-specific-position-is-empty%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

                    Morgemoulin

                    Scott Moir

                    Souastre