0

以下の形式のデータがあります。

持つ

必要とする


私の主な問題は、フィールド/列のデータが長すぎるファイルがあることです。

単純に出力を表示すると (コマンド filename.xls|awk -F"|" '{print $1,$2,$3))、見にくく、読むのが非常に複雑になります。として

....FIELD WIDTH を設定することはできますか???

ありがとう

更新... ghititripleeeに(わかりにくい場合は拡大してください) 入力ファイルはタブ区切りです...

ここに画像の説明を入力

4

2 に答える 2

2

awk の substr() 関数を使用します。例: awk '{print substr($3,0,10)}'

詳細については、 man awkを参照してください。

于 2012-08-19T11:03:53.873 に答える
2

シェルから、「fmt」コマンドを使用して、いくつかの列でテキストを折り返すことができます。

[ghoti@pc ~]$ text="dfgkjfd vonhsadoi djo asdoi sdojvdjkdo soij dsmioo broingli."
[ghoti@pc ~]$ printf '%30s\n' | tr \  -
------------------------------
[ghoti@pc ~]$ fmt -30 <<<"$text"
dfgkjfd vonhsadoi djo asdoi
sdojvdjkdo soij dsmioo
broingli.
[ghoti@pc ~]$ 

man fmtご使用の環境でコマンド ライン オプションを確認する必要があります。<<<Text表記はシェルによって使用されるものでbashあり、必ずしもこのコマンドを使用する方法ではありません。

テーブル内のレイアウトはより複雑で、awk だけでは単純に実行できません。

于 2012-08-19T11:40:30.493 に答える