我有一個輸出,我管道awk,並在一些行的末尾找到一個很好的RS字符串。 但是,當我將尾隨字符串定義爲RS時,awk僅刪除整行內容。我希望保留RS字符串的數據,只有RS從行中刪除。awk - 打印RS之前的數據,同一行
awk的例子輸入:從AWK
data data data RS_STRING
data SEARCHED_STRING data data
data data
data data data RS_STRING
data data data
data data
data data data RS_STRING
data SEARCHED_STRING data data
data data
所需的輸出:
data data data
data SEARCHED_STRING data data
data data
data data data
data SEARCHED_STRING data data
data data
我現在awk的語法是:
awk '/SEARCHED_STRING/' RS = "RS_STRING"
...我得到:
data SEARCHED_STRING data data
data data
data SEARCHED_STRING data data
data data
正如您通過將RS_STRING定義爲RS所看到的那樣,awk會去除該行中包含的RS之前的所有數據。
我一直在尋找過去三天的解決方案,但還沒有找到。
預先感謝您。
歡迎堆棧溢出。請儘快閱讀[關於]頁面。 RS是記錄(行)分隔符;你是在想也許你找到了一個好的場分隔符?如果您指的是記錄分隔符,則樣本數據只有3條記錄,第三條記錄不會終止(第一個RS STRING之前的素材,兩個標記之間的素材以及第二個標記之後的素材)。什麼是你正在使用的RS字符串?你究竟如何設置RS? –
如上所述,我遇到的問題是將RS設置爲不在線的起始位置。當我在一行的開頭設置一個RS時,它會從該行中刪除,並且該行後面的RS數據保持不變。但是如果RS位於線路中的任何其他位置,則直到定義的RS的所有內容都將被刪除。我想保留這些數據。這個例子就是爲了說明我正在努力完成的事情。 –
嘗試sed,並用null替換RS STRING。示例:sed's/RS STRING //' – alvits