如何找到 .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 中的行将具有不同的长度。因此,如果没有足够的空格,则布局不正确。
最佳答案
通常我发现这类问题是这种思考过程的结果:
- 我正在尝试解决问题 A
- 我认为执行过程 B 会解决 A
- 我会问如何实现流程B
您将获得有关如何实现流程 B 的字面答案 - 但如果您包括 问题 A 的上下文,你会得到更好的答案,并且可能会解决 问题 A 比过程 B 更简单。
那么,您试图通过使文件中的所有行都具有相同的长度来解决什么问题?
关于bash - 在 .txt 文件中查找最长的行并用 'blank Spaces' 填充该长度的所有行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3111870/