GNU/Linux >> Linux の 問題 >  >> Linux

2 つのファイルの最初の行だけを比較するには?

どうぞ:

diff <(head -n 1 file1) <(head -n 1 file2)

(これは何も返しません)。

diff <(head -n 2 file1) <(head -n 2 file2)

Returns:
2c2
< 1
---
> 3

それをスクリプトに組み込んで、言及したことを実行できます。

#!/bin/bash

fileOne=${1}
fileTwo=${2}
numLines=${3:-"1"}

diff <(head -n ${numLines} ${fileOne}) <(head -n ${numLines} ${fileTwo})

これを使用するには、スクリプトを chmod +x nameofscript.sh で実行可能にするだけです そして実行するには ./nameofscript.sh ~/file1 ~/Docs/file2 これにより、デフォルトの行数は 1 のままになります。さらに多くの行数が必要な場合は、そのコマンドの末尾に数字を追加します。

(または、スクリプトで -f1 file1 -f2 file2 -n 1 を使用してスイッチを実行することもできますが、そのための case ステートメントを頭のてっぺんに思い出すことはできません)。

head -n で示される行数を先頭から返します .逆にしたい場合は tail -n ${numLines} になります (テールは行数を最後から後ろにします)。

2016 年 5 月 10 日編集:

これは Bash (および互換シェル) に固有のものです。これを別のものから使用する必要がある場合:

bash -c 'diff <(...) <(...)'

Linux
  1. ファイルの最初の行の前にテキストを挿入する方法は?

  2. Diffは、2つのファイルが同じであるにもかかわらず、異なると報告します!?

  3. 特定のタイプのファイルのみのディレクトリをどのように比較しますか?

  1. コマンドラインでCentOS8でファイルを検索する方法

  2. ディレクトリ内の最後に変更された 5 つのファイルを一覧表示 (ls) するにはどうすればよいですか?

  3. Linux で同じサイズの 2 つのファイルのバイナリ diff を実行するにはどうすればよいですか?

  1. コマンドラインでのファイルの検索(ハウツー)

  2. コマンドラインを使用してディレクトリ内のファイルの数を取得するにはどうすればよいですか?

  3. ファイルを分割し、各部分の最初の行を保持する方法は?