簡體   English   中英

bash / sed腳本使用正則表達式從文件獲取輸出

[英]bash/sed script to get output from a file using a regex


我有一個文件,該文件在文件的其他行之間包含以下形式的行object 0: data: 2object 0: data: 232132
我需要從文件中提取所有object idata值,並將它們空間分開存儲在輸出文件中,例如使用bashsed output
如果有人可以幫助我實現這一目標,那就太好了。

輸入示例

num objects: 3
object    0: name: 'x'
object    0: size: 4
object    0: data: 1
object    1: name: 'y'
object    1: size: 4
object    1: data: 3231
object    2: name: 'x'
object    2: size: 4
object    3: data: -32

輸出示例:

1 3231 -32

您可以使用如下形式:

awk '$3=="data:"{print $4}' file

當第三個字段等於“ data:”時,將輸出第四個字段。

更簡短地說,您可以匹配模式/data:/

awk '/data:/{print $4}' file

要在同一行上輸出數字,請使用printf而不是print 為了使內容更整潔,可以使用數組並在END塊中打印值:

awk '/data:/{a[++n]=$4}END{for(i=1;i<=n;++i)printf "%s%s",$4,(i<n?FS:RS)}' file

使用這樣的數組可以輕松地用空格FS分隔每個值,並在末尾添加換行符RS

這些命令中的任何一個都可以使用redirection > output生成輸出文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM