1

私は自分で簡単に答えられると思っていた非常にばかげた質問を持っています...まあ、私にはできません。

次のようにファイルを";"分離しています。

Grand Hotel  ;Yes;No availability;Dus ;11; . 130,00 ;No availability;500 mt from Arena;

次のように(Excelに移動するために)ファイルに印刷する必要があります。

グランドホテル
はい
在庫なし
...などなど

とても単純なので、非常に簡単な解決策を見つけることができません。私は Debian Bash シェル環境で作業しているので、何か (bash スクリプト、awk、grep) を試していますが、何も機能しません。助けてください。M.

4

3 に答える 3

3

したがって、基本的には、次の形式の行を含むファイルを次のように変換しますF1;F2;F3;...;FN

 F1
 F2
 F3
 ...
 FN

tr(1) を使用して、セミコロンを改行に変換できます。

tr ';' '\n' < infile

「infile」は CSV 入力ファイルの名前です。

于 2013-04-11T10:10:01.687 に答える
1

ファイルが 1 行よりも長い場合、すべてのフィールドが別々の行にある場合、新しいレコードセパレータは何になりますか?

この awk は、各フィールドを新しい行に書き込み、各レコードの間に空白行を追加します。

awk 'BEGIN {FS=";"; OFS="\n"; ORS="\n\n"} {$1=$1} 1'

奇数$1=$1ビットは、awk に $0 (つまり、現在のレコード) を新しいセパレータで強制的に再書き込みさせるために必要です。

例:

$ awk 'BEGIN {FS=";"; OFS="\n"; ORS="\n\n"} {$1=$1} 1' << END
a;b;c
d;e;f
END

出力

a
b
c

d
e
f
于 2013-04-11T22:37:31.823 に答える
1

どうですかsed:

echo '....' | sed 's/;/\n/g'
于 2013-04-11T10:10:01.637 に答える