列を使用してスペースの代わりにタブを区切るにはどうすればよいですか?

列を使用してスペースの代わりにタブを区切るにはどうすればよいですか?

columnUnixコマンドを使用していくつかのテキストを書式設定したいと思います。タブで区切られたフィールドがありますが、各フィールド内にスペースもあります。columnスペース(タブとスペース)で区切られます。列のタブ文字のみを区切り文字として使用するにはどうすればよいですか?

次のようにタブ文字を区切り文字として指定します。

cat myfile | column -t -s"\t"

ベストアンサー1

列 -t -s '\t'

\列はと文字で区切られていますt

column -s \tcolumn -s 't'シェルはそれを引用演算子として解釈するので、バックスラッシュと同じです。

ここでは、実際のタブ文字を列に渡したいと思います。 ksh93、zsh、bash、mksh、busybox sh、またはFreeBSD shの使用:

column -ts $'\t'

Ctrl-V Tabシェルプロンプトに入力するか(タブはスペースと同様にシェル構文のトークン区切り文字であるため、引用符の中または前にバックスラッシュが付く)演算子を使用して実際のタブ文字を入力します。"$(printf '\t')"これは、+globに必要な二重引用符の分割を無効にします)タブ文字も$IFSデフォルト値であるためです。

おすすめ記事