awkを使用してテキストファイルの列間のスペースを増やすにはどうすればよいですか?
質問する
3707 次
3 に答える
0
これはあなたのために働くかもしれません:
cat <<\! >file
> a b c d
> w x y z
> !
cat file
a b c d
w x y z
awk -v OFS=' ' '{$1=$1};1' file
a b c d
w x y z
于 2012-08-11T14:03:56.887 に答える
0
出力をよりきれいにしようとしている場合は、次を使用しますcolumn
。
$ printf "%s %s %s\n" one two three four five six seven eight nine
one two three
four five six
seven eight nine
$ printf "%s %s %s\n" one two three four five six seven eight nine | column -t
one two three
four five six
seven eight nine
于 2012-08-11T12:43:05.837 に答える
0
最も簡単な方法は、フォーマット幅指定子を使用することです。それはあなたのデータに依存します。
{
for (i = 1; i <= NF; i++) {
printf("%9s ", $i);
}
printf("\n") ;
}
上記%9
は、各フィールドを 9 文字幅のスペースに出力するように awk に指示しています。データが 9 文字を超える場合、awk は必要なだけのスペースを使用します。
printf()
非常に柔軟です。たとえば、4 つのフィールドを持つ入力ファイルの場合、次のようにして出力形式を制御できます。
printf("%d %9s $d: %s\n", $1, $2, $3, $4);
于 2012-08-11T11:04:22.617 に答える