Sybaseクエリを実行して出力を提供するユーティリティ(isqlの周りのラッパー)があります。 2つのタブで2つの列を分割したいです。このユーティリティは次のように役立ちます。
<-s> : resets the column separator character, which is blank by default
-s\\t
すべての列を区別するためにタブを使用してみました。
ただし、-s\t\t を試みると、奇妙な結果が表示されます。たとえば、次のようになります。
1\t\tS1\t\tmaindb\t\t1\t\t1\t\t1\t\t1\t\t50\t\t10\t\t0\t\tNULL\t\tNULL\t\tNULL\t\tNULL\t\t1\t\t
私も試してみましたが、-s' '(eight spaces), -s"\t\t", -s/\t/\t(I knew this wouldn't work, but still), -s\2t, -s\t+1
何も動作しないようです。
この問題をどのように解決できますか?
答え1
isql
コマンドが許可する場合ひも単一文字以外のオプションの引数として-s
(テストできません)、以下を使用して両方のタブを指定できる必要があります。
isql -s $'\t\t' ...
bash
シェルに。 2つを挿入することもできます。言葉タブをダブルクリックCtrl+VTabするか
isql -s "$( printf '\t\t' )" ...
オプションが複数の区切り文字を受け入れない場合(マニュアルで提案されているように「列区切り記号」と呼ばれる)特徴「代わりに」列区切り記号ひも")、それではクエリ結果を後処理する以外にできることはあまりありません。
以下は、標準入力ストリームから出てくるすべてのタブを2倍にしますisql
(bash
タブで挿入を使用します。GNU$'\t'
は、sed
上記のハックや他のシェルを使用せずにこれを理解します):\t
$
Ctrl+VTabprintf
isql -s $'\t' ... | sed $'s/\t/&&/g'