我需要右對齊我的文件的函數。你能給我一些提示或建議嗎? 謝謝。右對齊文件
Q
右對齊文件
1
A
回答
0
您需要檢測文件中某一行的最大長度,並編寫一個函數來填充具有此長度的空格。
3
while read line
do
printf '%80s\n' "$line"
done <infile.txt> outfile.txt
1
編輯:
其實,你並不需要扭轉線:
printf -v spaces "%80s" " "; man rev | sed "s/^/$spaces/;s/.*\(.\{80\}\)\$/\1/"
原文:
反轉線,墊他們,截斷他們並將他們撤回。
man rev | rev | sed '1{x;s/^$/ /;s/^.*$/&&&&&&&&/;x};G;s/^\(.\{81\}\).*$/\1/;s/\n//' | rev
輸出:
REV(1) BSD General Commands Manual REV(1)
NAME
rev — reverse lines of a file or files
SYNOPSIS
rev [file ...]
DESCRIPTION
The rev utility copies the specified files to the standard output,
reversing the order of characters in every line. If no files are speci‐
fied, the standard input is read.
AVAILABILITY
The rev command is part of the util-linux-ng package and is available
from ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/.
BSD March 21, 1992 BSD
這裏的另一種方式做同樣的事情:
printf -v spaces "%80s" " "; man rev | rev | sed "s/\$/$spaces/;s/^\(.\{80\}\).*$/\1/" | rev
2
我只能想到的一種方式來回答這個問題:
% ./4168932.awk ./4168932.awk
#!/usr/bin/awk -f
{
a[++n] = $0;
if (length(a[n]) > width) {
width = length(a[n])
}
}
END {
format = "%" width "s\n";
for (line = 1; line <= n; ++line) {
printf format, a[line]
}
}
+0
**艱難的人羣!** – Johnsyweb 2010-11-13 21:32:56
相關問題
- 1. 右對齊文本?
- 2. 對齊文本右
- 3. 右對齊文本
- 4. 對齊文本右對齊圖標
- 5. 對齊文本的div右
- 6. Listpicker文本對齊向右
- 7. TextField右對齊文本
- 8. 右對齊印刷文本
- 9. NSString左右對齊文本?
- 10. 對齊文本右表
- 11. 對齊文本右asp:changepassword
- 12. TableLayout,文本 - 右對齊
- 13. 右對齊ToolBarPanel控件WPF
- 14. 右對齊流
- 15. flexbox - 右對齊
- 16. 右對齊表?
- 17. VBA右對齊
- 18. 右對齊
- 19. 左右對齊
- 20. NSNumberFormatter右對齊
- 21. 左右對齊
- 22. 右對齊文本框內的文本
- 23. 輸出右對齊
- 24. Android右對齊TabWidget
- 25. 表格右對齊
- 26. 右對齊輸入
- 27. 右對齊箭頭
- 28. 對齊錨向右
- 29. mincss右對齊navbar
- 30. 對齊和'右拉'
請遵循[general](http://tinyurl.com/so-hints)問題[準則](htt p://meta.stackexchange.com/q/10812):陳述任何特殊的限制,展示你到目前爲止已經嘗試過的東西,並詢問具體是什麼讓你感到困惑。 – 2010-11-12 20:55:59