![]() |
Helloやアメリカ合衆国へようこそ! UNIXおよびLinuxフォーラム!訪問し、当社のグローバルコミュニティに参加いただきありがとうございます。
|
|
Googleのunix.com
|
|||||||
| シェルプログラミングとスクリプティング KSH 、 CSH 、 shに、 bashの、はPerl 、 PHPは、削除するsed 、 Awkの、他のシェルスクリプトやシェルスクリプト言語についての質問の投稿はこちら。 |
その他のUNIXおよびLinuxフォーラムトピックは参考にすること
|
||||
| スレッド | スレッドスターター | フォーラム | 返信 | 最後の投稿 |
| ...必要なファイルを比較できます。 | er_ashu | UNIXのダミー質問と回答のため | 4 | 2008年5月15日 09:37午後 |
| 比較UNIXおよびWindowsファイル体制 | localp | UNIXのダミー質問と回答のため | 1 | 2008年4月11日 04:02午前 |
| 出力フォーマット-私との比較/ pファイル | velappangs | シェルプログラミングとスクリプティング | 1 | 2008年4月3日 06:31午前 |
| スクリプトファイルの比較 | tiger99 | シェルプログラミングとスクリプティング | 1 | 2008年1月30日 10:47午前 |
| ファイル時刻の比較の質問 | pc9456 | UNIXの詳細&エキスパートのためのユーザー | 2 | 2003年7月23日 03:05午後 |
![]() |
|
|
LinkBack | スレッドツール | このスレッドを検索 | スレッドを評価 | 表示モード |
|
|
|
||||
|
ファイルの比較
私は2つのテキストファイルを比較するために、非常にこれらのファイル内の行の一部の列にあるいくつかの違いがいくつかある。
GBのサイズのファイルです。 サンプルの行は以下の通りです: 11111122222222333333aaaaaaaaaabbbbbbbbbccccccccdddddd 11111122222222333333aaaaaaaaaabbbbbbbbbccccccccddeddd そこで、これらのファイル1とファイル2をそれぞれ2つのラインを想定しているから、私は、差分ファイルは、新しい出力ファイル内の2つ目のファイルの行を取得する必要があります。 私が何になさいますファイル1とファイル2ループからのすべての行から行を読んで、見ているときに試合を停止すると、他のユーザーが行に出力ファイルが印刷されています。そして、ファイル1からすべての行に対して同じ手順を繰り返します。 この点では協力をお願いいたします。 |
|
||||
|
もし私がやろうとしているが正しく理解し、ここでは簡単なbashスクリプトだ。
コード:
#!/bin/bash
compareFile = "/path/to/file/to/compare.txt"
outputFile = "/path/to/outputFile.txt"
for filename in /some/dir/of/text/files/*.txt; do
numlines=`cat $filename | wc -l`
for i in `seq 1 $numlines`; do
current=`cat $filename | head -$i | tail -1`
grep -q "${current}" ${compareFile}
if [ $? != 0 ]; then
#doesn't exist, append to $outputFile
echo "${filename}:${current}" >> ${outputFile}
fi
done
done
|
|
||||
|
引用:
また、 seqの標準コマンドではありませんいくつかの* nixのOSをしたがって場合、ループは、店頭でのループは、 whileループを使用する代わりに使用することができます。 NUM件中[ $例えばル$ numlines ] |