如何使用bash从brctl输出中提取桥名?

时间:2016-04-30 20:38:21

标签: bash

我有一个brctl输出:

brctl show | awk 'NR>1 {print $1}' 
testbr
vlan.2
veth689NIN <-- wrong

如何解析此输出以仅获取桥名?

Imports Oracle.DataAccess.Client
Public Class Form1
    Public con As New OracleConnection
    Public ds As New DataSet

    Public Function Connect() As OracleConnection
        Dim username As String = txtUsername.Text
        Dim password As String = txtPassword.Text
        Dim connectString As String = "Data Source=XE; user id=" & username & ";" & "Password=" & password & ";"
        Dim con As New OracleConnection(connectString)
        con.Open()
        Return con
    End Function

    Public Function populateDS() As DataSet
        ds = New DataSet
        Dim sql As String
        Dim da As OracleDataAdapter
        sql = "SELECT * from Customer"
        da = New OracleDataAdapter(sql, Connect())
        da.Fill(ds, "DT_Customer")
        con.Close()
        Return ds
    End Function


    Dim Attempt As Integer = 1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        **If txtUsername.Text = "username" And txtPassword.Text = "Password"** Then
            MsgBox("Welcome")
            Customer.ShowDialog()
            Me.Hide()
            populateDS()

        ElseIf Attempt = 3 Then
            MsgBox("Maxium Attempts Reached")
            Close()

        Else
            MsgBox("Username & Password Incorrect - Attempt " & Attempt & " of 3 ")
            Attempt = Attempt + 1
            txtUsername.Text = ""
            txtPassword.Text = ""
            txtUsername.Focus()

        End If
    End Sub
End Class

2 个答案:

答案 0 :(得分:2)

也许你也可以检查这样的字段数(NF):

buttons

答案 1 :(得分:0)

这是一个sed解决方案:

brctl show | sed -n '2,$ {s/ .*//; /./p}'
testbr
vlan.2

如何运作

  • &#39; -n&#39;

    除非我们明确要求,否则告诉sed不要打印任何内容。

  • 2,$ {...}

    这告诉sed仅在第2行和第2行执行大括号中的命令。这消除了标题。

  • s/ .*//

    这将从第一个空格后的行中删除所有内容。

  • /./p

    如果线上还有任何东西(意味着它没有以空格开头),则打印出来。