![]() |
Helloやアメリカ合衆国へようこそ! UNIXおよびLinuxフォーラム!訪問し、当社のグローバルコミュニティに参加いただきありがとうございます。
|
|
Googleのunix.com
|
|||||||
| シェルプログラミングとスクリプティング KSH 、 CSH 、 shに、 bashの、はPerl 、 PHPは、削除するsed 、 Awkの、他のシェルスクリプトやシェルスクリプト言語についての質問の投稿はこちら。 |
その他のUNIXおよびLinuxフォーラムトピックは参考にすること
|
||||
| スレッド | スレッドスターター | フォーラム | 返信 | 最後の投稿 |
| 大容量のファイルを分割し、各ファイルのヘッダとフッタを追加 | ashish4422 | シェルプログラミングとスクリプティング | 1 | 2008年4月15日 06:12午前 |
| 分割のパターンファイルには、 -スプリット、 Csplit 、 Awkの | madhunk | UNIXのダミー質問と回答のため | 10 | 2007年12月17日 12:57午後 |
| ファイル名の分割 | りんくう | シェルプログラミングとスクリプティング | 1 | 2007年5月28日 01:47午前 |
| ファイルを分割する必要があります | getdpg | シェルプログラミングとスクリプティング | 11 | 2006年9月4日 03:08午前 |
| ファイル内のタグをどのようにファイルを分割するか? | spookyrtd99 | シェルプログラミングとスクリプティング | 1 | 2006年7月31日 12:50午前 |
![]() |
|
|
LinkBack | スレッドツール | このスレッドを検索 | スレッドを評価 | 表示モード |
|
|
|
||||
|
Awkの分割を使用してファイルを
私は、ファイルを読む際に、複数のファイルにファイルを分割目指しています。私は、元のファイルからの行のさまざまな設定して新しいファイルを作成する必要があります。つまり、最初の出力ファイルを、 2番目の100行のように10行を含めることができます。基準の2行をいくつかの文字(変数)で始まるとの間のラインを得ることです
例。サンプル入力ファイル DOC100 aaaaaa bbbbbb cccccccc エンド DOC200 ddddddd eeeeeee エンド 私DOC100とENDにout.1間の行を送信する必要がある とDOC200とout.2エンドの間に、次の行 awkは私を使ってこれを行うと考えていたと私は次のコマンドを実行しようとしたがうまくいきませんでした。 韓国\u003d $ filenameにはgrepドク|カットc4 - 6 Awkの- vをcn \u003d $ K 'で/ドキュメント$ cn / 、 /エンド/ (印刷$ 0 ) ' $ファイル名> $ outfile 誰もこれを助けてくれますか?ありがとう |
|
||||
|
zazzybobとご協力のおかげでYgor 。しかし、私はあなたのスクリプトのいくつかの問題を参照してください。
zazzybobのスクリプト-まず最初に私は、固定長のデータはファイルを分割する必要があります。このスクリプトでは、目的のデータを別のファイルが作成されますが、フィールド内のスペースを無視すると、フィールド内のスペースを残して連結することを意味します。 Ygorのスクリプト-スクリプトを1つのファイルのみをドキュメントの最後のドキュメントの間のデータを名前/終了を作成します。それが何であるかのように、入力ファイルには、良い兆候されているデータを置きます。 |
|
|||||
|
私は"前にdoc.1 "のようなファイル名については、ビットをよく読んでいなかった。この代わりにしてみてください...
コード:
awk '/^DOC/{f="doc."++d} f{print > f} /^END/{close f; f=""}' infile
\u003d\u003d > doc.1 < \u003d\u003d DOC100 aaaaaa bbbbbb cccccccc エンド \u003d\u003d > doc.2 < \u003d\u003d DOC200 ddddddd eeeeeee エンド |
![]() |
| ブックマーク |
| スレッドツール | このスレッドを検索 |
| 表示モード | このスレッド |
|
|