【发布时间】:2020-12-11 20:28:45
【问题描述】:
我正在尝试从下面的输出中导出某些字符串,但是我没有使用 sed/awk 的经验,我需要一些建议我该如何继续。
输入:
name Cleartext-Password := "password", Service-Type := Framed-User
Framed-IP-Address := 127.0.0.1,
MS-Primary-DNS-Server := 8.8.8.8,
Fall-Through = Yes,
Mikrotik-Rate-Limit = 20M/30M
输出应该是: 名称;密码;127.0.0.1;20M;30M;
我不确定这是否是正确的方法,但我已尝试删除所需字符串之间的所有内容,例如:
sed 's/ Cleartext-Password := "/;/'
但是我认为这是肮脏的方式而不是聪明的方式。
您能否让我知道我需要寻找什么才能为此创建有效的 sed/awk 解决方案?
【问题讨论】:
-
只有一个样本很难说什么是足够的,但是 5-6 行的 Awk 似乎是一张票。如果令牌始终处于可预测的顺序,则可能更少。因此,不幸的是,这个问题太模糊了,在 Stack Overflow 上不是一个可以接受的问题。
-
name是关键字还是可以包含空格的名称的占位符?您的文件总是有 5 行? -
@cyrus "name" 始终是一个没有空格的字符串,但它可以包含点或其他特殊字符。
-
这被标记为 [tageembedded-linux] 但你的问题没有提到任何平台。如果您在 Busybox 等严重受限的平台上需要此功能,或许可以edit 澄清您的要求。
-
为您的问题的示例输入添加 3-4 条记录和所需的输出(无描述)。