2016-09-28 2 views
1

私は、必要なものとどのようなdiffコマンドを組み合わせるべきかわかりません。しかし、基本的に私は、ファイルの充実した2つの異なるディレクトリを持っています。しかし、1つのファイルセットでは、基本的に行末に「1」があります。これら二つのオブジェクトdiffコマンドを使用して、行末の文字を無視してください。

はFile1/1.TXT

I AM IDENTICAL 

File2の/ 1.TXT

I AM IDENTICAL 1 

を比較すると、だから私はちょうどdiffコマンドをしたいと思う場合

例は以下のようになります行の最後に '1'を残して、実際に変更されたファイルを表示します。これまでのところ、私は何かを思いついた。

diff file1/ file2/ -rw -I "$1" | more 

しかし、これはうまくいきません。

これは簡単な質問ですがお詫び申し上げます。ファイルおよび/またはサイズの数はそれほどではない場合

+0

これは 'diff'のために作られたものではありません。私は直接解決策があるのか​​疑問です。代わりに 'sed'のようなものを使用して入力の不要な部分を削除し、その結果を' diff'コマンドにパイプすることをお勧めします。 – arkascha

+0

@arkaschaどのように私はそれをやって行くかについての任意の提案。私はsedコマンドにあまり慣れていない。 –

答えて

0

、あなたはまず、違いを眼球と単にarkaschaが示唆したように、

vimdiff File1/1.txt File2/1.txt 

そうでない側で二つのファイル側を比較するvimdiffコマンドを使用することができます比較する前にファイルを修正して終了文字を削除する必要があります。

+0

私は1000のファイルを比較していますので、残念ながらvimdiffは本当にオプションではありません。 sedを使ってすべてのファイルを一度に変更して行の最後に '1'を削除する方法について知っていますか? –

+0

ファイル内のすべての行に文字1が含まれている場合は、次のsedコマンドを使用して削除することができます。 'sed 's/1 $ //' input.txt> output.txt'。明らかに、ファイル全体にforループ(おそらくbashスクリプトファイル内)があり、このコマンドをすべてのファイル名(input.txt)に適用する必要があります。 – MomoPP

関連する問題