bash - 在 .txt 文件中查找最长的行并用 'blank Spaces' 填充该长度的所有行?

标签 bash text macos shell

如何找到 .txt 文件中最长的一行,然后在其末尾用空格将所有其他行填充到该长度?

我猜这很容易回答。我对使用 awk, paste 命令知之甚少 等等。也许有人可以帮助我。谢谢!

更具体一点……到目前为止,我可以执行以下操作。这将从 .txt 文件中获取最长的行:

awk '{ if (length($0) > max) {max = length($0); maxline = $0} } END { print maxline }' in.txt

这会用空格填充行(直到 50):

awk  'length <= 50 { printf "%-50s\n",$0 }' in.txt > out.txt

我只是不知道如何将值从一行传递到另一行。

我为什么要问这个?我想使用粘贴命令合并两个 .txt 文件。文本 B 将位于文本 A 的右侧。文本 A 中的行将具有不同的长度。因此,如果没有足够的空格,则布局不正确。

最佳答案

通常我发现这类问题是这种思考过程的结果:

  1. 我正在尝试解决问题 A
  2. 我认为执行过程 B 会解决 A
  3. 我会问如何实现流程B

您将获得有关如何实现流程 B 的字面答案 - 但如果您包括 问题 A 的上下文,你会得到更好的答案,并且可能会解决 问题 A 比过程 B 更简单。

那么,您试图通过使文件中的所有行都具有相同的长度来解决什么问题?

关于bash - 在 .txt 文件中查找最长的行并用 'blank Spaces' 填充该长度的所有行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3111870/

相关文章:

macos - shell 脚本 : remove first column from txt files

linux - 如何将别名输出发送到屏幕、文件和电子邮件?

bash - 使用 ffmpeg 将 youtube-dl 的输出管道传输到脚本使用 echo 看起来不错,但在执行时返回错误

linux - Ncat 连接并立即在 Windows 上执行命令

java - 将文件名与 id 进行匹配

c# - 提高此文本处理代码的效率

java - 检测 `char[]` 中的换行符

macos - Xcode 中的代码签名

android - android bash shell脚本的问题

ios - 获取请求返回旧数据