按字母顺序对几包线进行排序

保罗·吉鲁(Paul Giroud)

注意:补充问题在这里:如何在以标题分隔的多个“块”中分别对行进行排序?


因此,我确实找到了答案,那就是如何按字母顺序对文本文件中的行进行排序。但是,这不完全是我需要做的。我有一个配置文件,该配置文件包含15个不同的参数,这些参数进入工作中的仪器并由机器读取以具有配置文件列表。

可悲的是,此文件的格式如下所示:

[ProfileB]
param1=z
param2=y
param3=x
[ProfileA]
param1=k
param2=l
param3=

我想按字母顺序对概要文件进行排序,但我需要它们与它们的参数保持分组。上面的示例应按以下方式排序:

[ProfileA]
param1=k
param2=l
param3=
[ProfileB]
param1=z
param2=y
param3=x

我猜想有些事情可以用固定数量的行(名称+参数)或以字符[[]作为一组行的开头的标识符来工作。

但这超出了我在文本处理方面的能力。我可以使用Sublime Text,R或Linux命令控制台。

卡米尔·马乔洛夫斯基

这在我的Debian中有效:

sed '1 ! s/^\[/\x00\[/g' | sort -z | tr -d "\0"

要使用文件,请使用重定向,例如{ sed … ; } <input.txt >output.txtsed …整个命令在哪里

步骤如下:

  1. sed[除非行是第一行,否则在行开头的每个行之前插入一个空字符这样,空字符可分隔配置文件。
  2. sort -z 使用这些空字符作为分隔符,因此它对整个配置文件进行排序,而不是对单独的行进行排序。
  3. tr 删除空字符。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章