"column -t"などのコマンドは、出力に区切り文字を保持します。

簡単なフォームを編集しています。フォーマットがうまくいってほしいです。tblまたはこれと同様のものを使用することもできますが、latexこれは過度に見えます。プレーンテキストでも十分です。シンプルなので、ソースを出力に入れるのが良いようです。したがって、ソースも見るのが好きです。これは完璧な作業を行う必要があるようですcolumn -s '|' -t。区切り文字を見つけ、各列の最大幅に基づいて並べ替えるスペースを自動的に挿入します。残念ながら、追加の編集後に再実行できないように区切り文字が削除されます。出力が入力として機能するようにすばやくこれを実行できる優れたテキスト処理ツールはありますか?それとも、私は自分で書く必要がありますか?

編集:以下は私が望むものの例です。

foo |   bar | baz
abc def | 12 | 23456

しなければならない

foo     | bar | baz
abc def | 12  | 3456

セパレータとスペーサは' '一緒に使用するとcolumn -t非常に効果的です。しかし、私のアイテムにスペースがあるので使用できません。スペーサーを仕切りと異ならせることは状況を複雑にする。区切り文字の横にある区切り文字として扱うのが役に立つと思いましたが、そうではありませんcolumn -s '|' -t(明らかに現在の動作も便利ですが)。

ベストアンサー1

あなたの質問が何であるかを正しく理解したかどうかはわかりません。しかし、追加の時間区切り記号を追加すると、この問題は解決されますか?したがって、2 番目の区切り記号を使用して区切り記号を表示し、元の区切り文字を変更せずに残すことができます。

各「|」に「@」を追加して、列コマンドへの入力が「xxx @ | yyyy」になるこの例を参照してください。列は「@」を処理し、「|」は影響を受けません。

~$ echo "foo | this is some text | bar" | sed 's/|/@|/g'  | column -s '@' -t
foo   | this is some text   | bar

おすすめ記事