2016-06-25 8 views
2

ソート、結合、切り取り(すべてのcoreutils?)などのbashツールの中には、タブのためにやや特殊な方法で渡す必要があるものがあります:sort -t $'\t' ...。この動作に対処する多くの疑問がここにあります。ではなく、タブで動作し、通常の文字とbash:変数付きの設定タブフィールドセパレータ

SEP="\t" 
sort -t $SEP ... 

私の問題は、私のような、変数とフィールドセパレータを渡ししようとしていますです。私はいくつかのバリエーションを試しましたが、どれも動作しません。これはどうすればできますか?

答えて

1

ANSI-C quotingを使用して、それを宣言します。

sep=$'\t' 

そして"$sep"としてそれを呼び出す、引用符は文字通りの意味を維持するために重要である:

sort -t "$sep" file.txt 

例:また

$ cat file.txt 
foo  bar 
spam egg 
abc  def 

$ sep=$'\t' 

$ sort -t $sep file.txt 
sort: multi-character tab ‘file.txt’ 

$ sort -t "$sep" file.txt 
abc  def 
foo  bar 
spam egg 

注目すべきことは、g環境変数のあいまいさを解消する変数名に小文字を使用していますが、非常に良い理由がない限りそうしなければなりません。

+0

:-)タブは、この記事では、失われる可能性があるため、注意が必要です何とかそれを逃した。迅速な対応をありがとう! – burger

+0

@burger嬉しいです。 – heemayl

-1

[Tab]を押す前に[CONTROL] + [V]キーを押してタブチャーを導入してください。

echo "a b c" |cut -d" " -f2 

B

あなたがコードを貼り付けコピーした場合、彼らが実際に失われているように私は私がすべての組み合わせを試してみましたと思っ

+0

なぜコメントなしでdownvotedですか?ソースコードにTabを挿入することは有効です。 –

関連する問題