【问题标题】:Converting a list of strings into a single line with sed/awk on linux在 Linux 上使用 sed/awk 将字符串列表转换为单行
【发布时间】:2023-01-14 04:07:09
【问题描述】:

我有一个文件 test.txt,它包含作为值/字符串列表的数据,也有一些空的 中间的线条如下图所示

Val1
Val2
Val3

Val4
Val5

Val6


所需输出:
Val1, Val2, Val3
Val4, Val5
Val6


我正在使用下面的命令,但它在单行中返回所有可用值。但我只希望连续的值应该连接在一起(逗号分隔),并且只要遇到一个空行就应该开始一个新行(我可以有多个连续的空行)。

cat test.txt | sed 's/<[^>]*>//g' | sed 's/ //g' | sed 's/.*/&/;$!s/$/, /' | tr -d '\n'

【问题讨论】:

标签: linux bash shell awk sed


【解决方案1】:

我认为这就是您使用任何 awk 尝试做的事情:

$ awk -v RS= -v OFS=', ' '{$1=$1} 1' test.txt
Val1, Val2, Val3
Val4, Val5
Val6

【讨论】:

    猜你喜欢
    • 2019-08-07
    • 2015-12-29
    • 2015-10-25
    • 2017-02-08
    • 2012-07-25
    • 2021-12-28
    • 2015-06-21
    • 2019-04-07
    • 2012-10-15
    相关资源
    最近更新 更多