将多行字符串转换为单个逗号分隔的字符串 [英] Turning multi-line string into single comma-separated
本文介绍了将多行字符串转换为单个逗号分隔的字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
假设我有以下字符串:
something1: +12.0 (some unnecessary trailing data (this must go))
something2: +15.5 (some more unnecessary trailing data)
something4: +9.0 (some other unnecessary data)
something1: +13.5 (blah blah blah)
我如何把它变成简单的
+12.0,+15.5,+9.0,+13.5
在 bash 中?
推荐答案
可以使用awk
和sed
:
awk -vORS=, '{ print $2 }' file.txt | sed 's/,$/
/'
或者如果你想使用管道:
Or if you want to use a pipe:
echo "data" | awk -vORS=, '{ print $2 }' | sed 's/,$/
/'
分解:
awk
擅长处理分解为字段的数据-vORS=,
将输出记录分隔符"设置为,
,这就是你想要的{ print $2 }
告诉awk
打印每条记录(行)的第二个字段file.txt
是你的文件名sed
只是去掉尾随的,
并把它变成一个换行符(如果你不想换行,你可以做s/,$//
)
awk
is great at handling data broken down into fields-vORS=,
sets the "output record separator" to,
, which is what you wanted{ print $2 }
tellsawk
to print the second field for every record (line)file.txt
is your filenamesed
just gets rid of the trailing,
and turns it into a newline (if you want no newline, you can dos/,$//
)
这篇关于将多行字符串转换为单个逗号分隔的字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文