【问题标题】:How to sort textfile text in this way? [duplicate]如何以这种方式对文本文件文本进行排序? [复制]
【发布时间】:2019-10-23 06:59:24
【问题描述】:

我有一个包含以下内容的文本文件:

@_.5_sh
@handa12247
@lshydymhmwd
@ahmr0784
@f7j.i
@carameljeddah
@lnqm_iii2
@raghad.ayman.524
@asfhfdfgt4355
@kuw871
@nouralhuda_muhammad
@gogo56817gma
@kaald10000
@sal_0221
@kaled_24009165
@km_kn124
@princess.hana89
@fulefulemm
@norah.0._
@ommajed965
@lam3aastar
@alimarar265
@klthmlmdy
@anas.sasan55
@s.m_b.b
@asnosy_almgrhe_
@norh7132
@880ali7
@tv.creativity
@ksakking3

我想在每行中每 5 个用户对它们进行排序。

@_.5_sh @handa12247 @lshydymhmwd @ahmr0784 @f7j.i
@carameljeddah @lnqm_iii2 @raghad.ayman.524 @asfhfdfgt4355 @kuw871
@nouralhuda_muhammad @gogo56817gma @kaald10000 @sal_0221 @kaled_24009165
@km_kn124 @princess.hana89 @fulefulemm @norah.0._ @ommajed965
@lam3aastar @alimarar265 @klthmlmdy @anas.sasan55 @s.m_b.b
@asnosy_almgrhe_ @norh7132 @880ali7 @tv.creativity @ksakking3

我玩过 seq 和 awk,但尝试失败。我希望有人能帮我解决这个问题。

【问题讨论】:

  • @SeanBright 我试过它不起作用。
  • 当然可以。也许您的文件有\r\n 行结尾,而不仅仅是\n
  • 确认两个答案(以及副本中的答案)都可以正常工作。您的实际输入文件必须有 \r\n 行结尾。
  • @SeanBright 我没明白。请给我看例子。添加后 \r\n - gyazo.com/b5cd23fea1f0848298b4737de7759613

标签: regex sorting awk seq


【解决方案1】:

使用awk

awk 'ORS=NR%5?FS:RS' file
@_.5_sh @handa12247 @lshydymhmwd @ahmr0784 @f7j.i
@carameljeddah @lnqm_iii2 @raghad.ayman.524 @asfhfdfgt4355 @kuw871
@nouralhuda_muhammad @gogo56817gma @kaald10000 @sal_0221 @kaled_24009165
@km_kn124 @princess.hana89 @fulefulemm @norah.0._ @ommajed965
@lam3aastar @alimarar265 @klthmlmdy @anas.sasan55 @s.m_b.b
@asnosy_almgrhe_ @norh7132 @880ali7 @tv.creativity @ksakking3

每 5 行更改输出记录选择器

编辑:这不适用于dos格式文件,所以在awk之前运行dos2unix yourfile

【讨论】:

  • 它可以工作,要么它给我这种格式:gyazo.com/73af63d7b9234cdf2f63c58081979d53
  • @praser 不确定你说它是否有效。编辑您的帖子并在此处添加您的数据,而不仅仅是示例数据。应该可以正常工作。
  • 帖子已编辑。请看一下。谢谢。
  • @praser 有了您的新数据,我的awk 仍然有效,输出与您请求的相同。小修改 " " 替换为 FS
  • '{ORS=(NR%5?FS:RS)}1' 会更清楚
猜你喜欢
  • 2016-01-14
  • 2019-10-19
  • 2011-10-15
  • 2021-03-16
  • 2019-09-30
  • 1970-01-01
  • 2016-07-24
  • 2012-12-11
相关资源
最近更新 更多