1

だから私はこれを私のデータファイルとして持っています

Account Number ena5LHtEj Name ena5LHtEj Account Type ena5LHtEj Balance
1 ena5LHtEj foo ena5LHtEj 1 ena5LHtEj 100
1 ena5LHtEj foo ena5LHtEj 1 ena5LHtEj 100
1 ena5LHtEj foo ena5LHtEj 1 ena5LHtEj 100

行 1 は列名です。はena5LHtEj、ランダムに生成された区切り文字です。そして他の3行は行です。これが私が実行しているコマンドです

column -t -s "$delimiter" data

区切り変数には値ena5LHtEjがあり、これが与える出力です

Accou   Numb  r     N    m      Accou   Typ      B  l  c
1       foo    1    100
1       foo    1    100
1       foo    1    100
1       foo    1    100

したがって、行は正しく解析されますが、列見出しは解析されません。スペースを削除しようとしたため、これはヘッダー名のスペースが原因ではありません。1 行目と 2 行目の違いは幅だけです。これをbashを使用してubuntuターミナルで実行しています。

これが与えるべきものです/私が欲しい

Account Number Name   Account Type Balance
1              foo    1            100
1              foo    1            100
1              foo    1            100
1              foo    1            100
4

1 に答える 1

2

あなたの問題は、区切り文字が文字列ではなく一連の文字であるという誤解から来ています。それらのそれぞれ (「指定された順序ですべて」ではない) は区切り文字として使用できます。したがって、「e」は「ena5LHtEj」の一部であるため、「Number」などは「e」で分割されます。

これを試して:

column -t -s "|" <(sed 's/ena5LHtEj/|/g' < data)

取得した文字列区切り記号を 1 文字の区切り記号に変換します (|この場合)。結果は、質問で指定したものです。

于 2013-10-02T14:25:19.267 に答える