2017-12-03 8 views
-1

に含まれていない1つのテキストファイルの内容を一覧表示したいです:私は2つのファイルを持っています。私は、ppcc.txtという名前のテキストファイルの</p> <p>コンテンツを例えば、他のテキストファイル

SUBSCRIBERIDENTIFIER|234818624|2000018 
SUBSCRIBERIDENTIFIER|234817904|5098596 
SUBSCRIBERIDENTIFIER|234908279|5093267 
SUBSCRIBERIDENTIFIER|234908023|VOIPBurn 
SUBSCRIBERIDENTIFIER|234909392|VOIPBurn 

、別の内容pcs.txtという名前のファイルは、以下のとおりです。

234818947|1754261815|20370101000000 
234809110|358155618|20370101000000 
234809417|1385298890|20361231230000 
234908023|1381142974|20171124205011 
234909392|358155618|20370101000000 

私は、234番号で探しています、と私は私の出力は以下の内容をResult.txtなどの別のテキストファイルに保存したい:

awk
SUBSCRIBERIDENTIFIER|234818624|2000018 
SUBSCRIBERIDENTIFIER|234817904|5098596 
SUBSCRIBERIDENTIFIER|234908279|5093267 
+2

どのプログラミング言語ですか?あなたはタグに 'linux'を含めました。誰かにあなたにコマンドラインでこれを行う方法を教えてほしいですか? – madebydavid

+0

コードの書式設定をお勧めします。 –

答えて

0

awk 'BEGIN{FS=OFS="|"}FNR==NR{a[$1]=1;next} !($2 in a)' pcs.txt ppcc.txt 

我々はppcc.txt、その後、二つのファイル、最初pcs.txtを読んでいます。プログラムの説明:

# Set input and output field delimiter to | 
BEGIN{FS=OFS="|"} 

# As long as FNR (record number in current input file) and 
# NR (overall record number) are equals we are reading the 
# first file - pcs.txt 
FNR==NR{ 
    # Store the value of the first column in as a key in 
    # an array "a" 
    a[$1]=1 
    # Don't process any further blocks. Continue with the 
    # next line of input 
    next 
} 

# This expression is only executed on lines of ppcc.txt 
# If the array "a" doesn't not contain the second column 
# as a key, print it. 
!($2 in a) 
+0

ありがとうhek2mgl。あなたの答えは非常に便利です –

+0

私はこのコマンドを別の方法で見ているならば、 – hek2mgl

+0

を歓迎します(コマンドの "!"を取り除くために)ので、2つのファイルに共通するデータ値を出力したいpcs.txt ppcc.txt、このコマンドが適切であることを望みます:awk 'BEGIN {FS = OFS = "|"} FNR == NR {a [$ 1] = 1; next}($ 2 a)' pcs.txt ppcc.txt –

関連する問題