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フォーラムトピックは参考にすること
スレッド スレッドスターター フォーラム 返信 最後の投稿
カンマ区切りのファイルから削除するフィールドの間に空白 nitinbjoshi UNIXのダミー質問と回答のため 2 2008年6月14日 09:14午前
XMLでパースする文字列をシェルスクリプトを使用してファイルを ayhanne シェルプログラミングとスクリプティング 46 2008年1月9日 12:33午後
多くのファイルとプリンタの内容は、シェルスクリプトを使用してファイルを検索 cdfd123 シェルプログラミングとスクリプティング 3 2007年10月7日 11:17午後
シェルスクリプトをどのように変数を外部ファイルから設定ファイルをパースする pradsh シェルプログラミングとスクリプティング 2 2007年7月9日 03:21午後
カンマ区切りの値を配列に分割する tmarikle シェルプログラミングとスクリプティング 3 2005年6月24日 06: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 2008年6月18日
KrishnaSaran KrishnaSaran is offline
登録ユーザー
  
 

参加日: 2008年6月
投稿: 12
Unixシェルスクリプトの内容をカンマ区切りファイルを解析する

親愛なるすべて、

私は、カンマ区切りのファイルがあります。
1 。 4カンマ( 5フィールド)が必要(ヘッダ)ファイルの最初の行。
2 。ファイルの最後の行1カンマ( 2フィールド)があるはずです。

Plsのシェルスクリプトの中でこの状態のチェックに私に役立ちます。

と最初の行と、ファイルの最後の行の間の行数は、最初と最後の行の最後のフィールドと一致する必要があります。

つまり、最初と最後の行数がウィルの最後のフィールドには、ファイルの行番号) ( -2と一致するはずです。

これで私を助けPls 。


サンプルファイル: QDB_2008.txt

1.1,20070427151500,99567,99669,0009
00001,20070427,00567,6012345671,2081 、私は
00002,20070427,00568,6012345672,2054 、私は
00003,20070427,00569,6012345673,2063 、私は
00004,20070427,00570,6012345674,2081 、エ
00005,20070427,00571,6012345675,2054 、エ
00006,20070427,00572,6012345676,2063 、エ
00007,20070427,00573,6012345677,2081 、 ū
00008,20070427,00574,6012345678,2054 、 ū
00009,20070427,00575,6012345679,2063 、 ū
101.1.0,0009 #

よろしく、
クリシュナ
  #2固定リンク)  
Old 2008年6月18日
時代 era is offline Forum Advisor  
Herder of Useless Cats (On Sabbatical)
  
 

参加日: 2008年3月
場所: /there/is/only/bin/sh
投稿数: 3652
コード:
awk -F, '
NR==1 { expect=$NF; fields=NF; last=0 }
NF != fields { last=NR;
  if (NR != 2) print NR ": wrong number of fields: " $0;
  if ($NF != expect) print NR ": last field value not the same as on first line"
  if ($NF != NR-2) print NR ": last field not equal to line count minus two"
  if ($NF != expect) print NR ": line count from first line not identical"
}
last > 0 && NR > last { print NR ": wrong number of fields: " $0 }' QDB_2008.txt
少し扱いにくいが、うまくいけば、少なくとも、あなたが必要始めた。
  #3固定リンク)  
Old 2008年6月18日
joeyg's Avatar
joeyg joeyg is offline Forum Staff  
modérateur
  
 

参加日: 2007年12月
Location :ホーム17度のワールドチャンピオン、ボストンセルティックス
投稿数: 1311
Wink はないが、それでもこの問題に近づくのは別の方法上品な

コード:
> cat chk_valid 
#! /bin/bash
#
# script to check on file conditions

ifile="QDB_2008.txt"

line_1=$(head -1 $ifile)
line_lst=$(tail -1 $ifile)
line_cnt=$(cat $ifile | wc -l)
detl_cnt=$((line_cnt-2))

line_1_val=$(echo $line_1 | cut -d"," -f5)
line_lst_val=$(echo $line_lst | cut -d"," -f2 | cut -d"#" -f1)

if [ "$line_1_val" -ne "$line_lst_val" ]
   then
   echo "Error - header & footer line counts differ"
fi

if [ "$detl_cnt" -ne "$line_1_val" ]
   then
   echo "Error - # detail lines does not match expected counts"
fi
  #4固定リンク)  
Old 2008年6月19日
KrishnaSaran KrishnaSaran is offline
登録ユーザー
  
 

参加日: 2008年6月
投稿: 12
やあ、

上記のコードが正常に動作します。
私はファイルの最後に改行文字を追加した後、スクリプトを実行する。

れていない場合は存在Pls私は、ファイルの最後に改行文字を追加して、みましょう。

よろしく、
クリシュナ
  #5固定リンク)  
Old 2008年6月19日
Franklin52 Franklin52 is offline Forum Staff  
モデレータ
  
 

参加日: 2007年2月
投稿数:4309
コード:
awk 1 file
よろしく
  #6固定リンク)  
Old 2008年6月19日
ripat ripat is offline Forum Advisor  
登録ユーザー
  
 

参加日: 2006年10月
場所:ベルギー
投稿数: 438
...または、
コード:
$ echo "" >> file
  #7固定リンク)  
Old 2008年6月19日
Franklin52 Franklin52 is offline Forum Staff  
モデレータ
  
 

参加日: 2007年2月
投稿数:4309
引用:
当初の投稿 ripat View Post
...または、
コード:
$ echo "" >> file
一方、営業利益は、ファイルの最後に改行文字を追加してこれは、常にファイルの最後にのみ存在していない場合には改行を追加します。

よろしく
Closed Thread

ブックマーク

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

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

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

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




すべてGMT -4です。現在の時刻は 05:07午後


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

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