$ echo 'a b' | column -t
a b
出力からのa
間には2つのスペースがあります。可能であれば、分離のために1つのスペースしかどのようにb
使用できますか?column
編集2:より多くのケースを含むようにデータを変更する
$ cat data
1 2 b
20 12.5 something
300 12.8 as
600 16 asrgty
1200 4.9 srty
1800 33.5 sry
10000 1.5 sty
200000 1.5 sty
$ column -t < data
1 2 b
20 12.5 something
300 12.8 as
600 16 asrgty
1200 4.9 srty
1800 33.5 sry
10000 1.5 sty
200000 1.5 sty
$ column -t -s '' < data
1 2 b
20 12.5 something
300 12.8 as
600 16 asrgty
1200 4.9 srty
1800 33.5 sry
10000 1.5 sty
200000 1.5 sty
$ column -t -s ' ' < data
1 2 b
20 12.5 something
300 12.8 as
600 16 asrgty
1200 4.9 srty
1800 33.5 sry
10000 1.5 sty
200000 1.5 sty
$ column -t < data | sed -re 's/ / /g'
1 2 b
20 12.5 something
300 12.8 as
600 16 asrgty
1200 4.9 srty
1800 33.5 sry
10000 1.5 sty
200000 1.5 sty
$ column -t < data | sed -re 's/ / /'
1 2 b
20 12.5 something
300 12.8 as
600 16 asrgty
1200 4.9 srty
1800 33.5 sry
10000 1.5 sty
200000 1.5 sty
予想される
1 2 b
20 12.5 something
300 12.8 as
600 16 asrgty
1200 4.9 srty
1800 33.5 sry
10000 1.5 sty
200000 1.5 sty
sed
注:この特定の状況に適用されるヒントを提供しないでください。 SEに関する質問は、非常に具体的なデータ型だけでなく他の人にも役立つはずです。
ベストアンサー1
トリミングできます。最後の空白文字のみ存在する一連の空白文字。このように:
sed 's/\( *\) /\1/g'
常に連続して複数の空白文字があるため、必要に応じて分割が常に切り捨てられます。
入力する:
column -t -s\ <<\COLS | sed 's/\( *\) /\1/g'
0 3.1415926535 s
00 3.141592653 so
000 3.14159265 som
0000 3.1415926 some
00000 3.141592 somet
000000 3.14159 someth
0000000 3.1415 somethi
00000000 3.141 somethin
000000000 3.14 something
COLS
出力:
0 3.1415926535 s
00 3.141592653 so
000 3.14159265 som
0000 3.1415926 some
00000 3.141592 somet
000000 3.14159 someth
0000000 3.1415 somethi
00000000 3.141 somethin
000000000 3.14 something
このルールがどのように準拠しているかを実際に示すために、列のsed
最後から最後まで複数のコピーを作成できます。各コピーはスペースオフセットを取得します。
入力する:
column -t <input | sed 's/.*/& & &/;s/\( *\) /\1/g'
出力:
0 3.1415926535 s 0 3.1415926535 s 0 3.1415926535 s
00 3.141592653 so 00 3.141592653 so 00 3.141592653 so
000 3.14159265 som 000 3.14159265 som 000 3.14159265 som
0000 3.1415926 some 0000 3.1415926 some 0000 3.1415926 some
00000 3.141592 somet 00000 3.141592 somet 00000 3.141592 somet
000000 3.14159 someth 000000 3.14159 someth 000000 3.14159 someth
0000000 3.1415 somethi 0000000 3.1415 somethi 0000000 3.1415 somethi
00000000 3.141 somethin 00000000 3.141 somethin 00000000 3.141 somethin
000000000 3.14 something 000000000 3.14 something 000000000 3.14 something