The UNIX and Linux Forums  
Helloやアメリカ合衆国へようこそ! UNIXおよびLinuxフォーラム!訪問し、当社のグローバルコミュニティに参加いただきありがとうございます。

Go Back   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午前

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek を搭載 Powered by Google
 
LinkBack スレッドツール このスレッドを検索 スレッドを評価 表示モード
  #1固定リンク)  
Old 2004年7月20日
pvar pvar is offline
登録ユーザー
  
 

参加日: 2004年2月
場所:心筋梗塞、アメリカ合衆国
投稿: 12
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

誰もこれを助けてくれますか?ありがとう
  #2固定リンク)  
Old 2004年7月20日
zazzybob's Avatar
zazzybob zazzybob is offline Forum Advisor  
登録ギーク
  
 

参加日: 2003年12月
場所:メルボルン、オーストラリア
投稿数: 2,100
このようなコードは、スクリプトは、どんな"ドク以下"に対応するファイルout.100 、 out.200名を予定

コード:
#!/bin/sh

while read line
do
   if echo $line | grep DOC; then
       line_no=`echo $line | sed 's/DOC\([0-9]*\)/\1/g'`
   elif echo $line | grep END; then
       : #ignore
   else
       echo $line >> out.$line_no
   fi
done < file.txt
どこfile.txtはあなたのデータが含まれます。

これは、簡単なスクリプトで、改善の余地はあるが、アイデアを得る。

乾杯
ZB
  #3固定リンク)  
Old 2004年7月21日
Ygor's Avatar
Ygor Ygor is offline Forum Staff  
モデレータ
  
 

参加日: 2003年10月
場所: -31.96,115.84
投稿数:1407
.. Awkの使用
コード:
awk '/^DOC/{f=$1} f{print > f} /^END/{close f}' infile
  #4固定リンク)  
Old 2004年7月21日
pvar pvar is offline
登録ユーザー
  
 

参加日: 2004年2月
場所:心筋梗塞、アメリカ合衆国
投稿: 12
zazzybobとご協力のおかげでYgor 。しかし、私はあなたのスクリプトのいくつかの問題を参照してください。

zazzybobのスクリプト-まず最初に私は、固定長のデータはファイルを分割する必要があります。このスクリプトでは、目的のデータを別のファイルが作成されますが、フィールド内のスペースを無視すると、フィールド内のスペースを残して連結することを意味します。

Ygorのスクリプト-スクリプトを1つのファイルのみをドキュメントの最後のドキュメントの間のデータを名前/終了を作成します。それが何であるかのように、入力ファイルには、良い兆候されているデータを置きます。
  #5固定リンク)  
Old 2004年7月21日
zazzybob's Avatar
zazzybob zazzybob is offline Forum Advisor  
登録ギーク
  
 

参加日: 2003年12月
場所:メルボルン、オーストラリア
投稿数: 2,100
私は投稿されたスクリプトは、前後に引用符" $行" 、のようにこの問題を解決するには
コード:
echo "$line" >> out.$line_no
これは、空白が保持されます

乾杯
ZB
  #6固定リンク)  
Old 2004年7月21日
Ygor's Avatar
Ygor Ygor is offline Forum Staff  
モデレータ
  
 

参加日: 2003年10月
場所: -31.96,115.84
投稿数:1407
私は"前にdoc.1 "のようなファイル名については、ビットをよく読んでいなかった。この代わりにしてみてください...
コード:
awk '/^DOC/{f="doc."++d} f{print > f} /^END/{close f; f=""}' infile
$頭-1000000ドク.*
\u003d\u003d > doc.1 < \u003d\u003d
DOC100
aaaaaa
bbbbbb
cccccccc
エンド

\u003d\u003d > doc.2 < \u003d\u003d
DOC200
ddddddd
eeeeeee
エンド
  #7固定リンク)  
Old 2004年7月21日
pvar pvar is offline
登録ユーザー
  
 

参加日: 2004年2月
場所:心筋梗塞、アメリカ合衆国
投稿: 12
zazzybobのスクリプト罰金する作品。

まだYgorのスクリプトに問題がある。現在は別の出力ファイルが作成されますが、行ドク&エンドでは、出力ファイルでも最低だ。私はこれらのライン間のデータが必要です。

反対の支援をお寄せいただきありがとうございます。
Closed Thread

ブックマーク

スレッドツール このスレッドを検索
このスレッドを検索

高度な検索
表示モード このスレッド
このスレッド

投稿ルール
あなた ことができない。 新しいスレッドを投稿
あなた ことができない。 返信の投稿
あなた ことができない。 添付ファイルの投稿
あなた ことができない。 自分の投稿を編集

BBコード なる 〜の上に
スマイリー なる 〜の上に
[イメージ] コードは 〜の上に
HTMLコードは、 オフ
トラックバック なる 〜の上に
ピングバック なる 〜の上に
Refbacks なる 〜の上に




すべてGMT -4です。現在の時刻は 06:27午前


提供: vBulletin、著作権© 2000 - 2006、Jelsoft企業株式会社。言語翻訳による電源
vBCredits v1.4著作権© 2007 - 2008 、 PixelFXスタジオ
は、 UNIXおよびLinuxフォーラムのコンテンツ著作権© 1993 〜 2009 。すべての権利を管理しReserved.Ad RedTyger

コンテンツ関連のURLで vBSEO 3.2.0