0 hits found
その文字列と正確に一致するが、ゼロの直前に数字がない行のみを取得するには:
awk '$0 ~ /[^[:digit:]]0 hits found/' infile
infile
次のようなテスト入力ファイル ( ) を想定します。
# Query: Name_ID1
# 2 hits found
# Query: Name_ID2
# 20 hits found
# Query: Name_ID3
# 0 hits found
# Query: Name_ID4
# 140 hits found
# Query: Name_ID5
# 0 hits found
# Query: Name_ID6
# 60 hits found
次の結果が得られます。
# 0 hits found
# 0 hits found
2 番目の質問では、次のようgetline
に奇数行を読み取り、両方を同時に出力するために使用します。
awk '{ getline hits_line; printf "%s %s\n", $0, hits_line }' infile
以前と同じテスト ファイルを使用すると、次の結果が得られます。
# Query: Name_ID1 # 2 hits found
# Query: Name_ID2 # 20 hits found
# Query: Name_ID3 # 0 hits found
# Query: Name_ID4 # 140 hits found
# Query: Name_ID5 # 0 hits found
# Query: Name_ID6 # 60 hits found
さらに、 vimを使用してこの種のタスクを試すのが好きなので、ここで解決策を示します。
の内容script.vim
:
set backup
for n in range( 1, line('$') / 2 )
execute "normal Jj"
endfor
saveas! Query2.txt
q!
次のように実行します。
vim -S script.vim infile
Query2.txt
これにより、コンテンツを含むファイルが生成されます。
# Query: Name_ID1 # 2 hits found
# Query: Name_ID2 # 20 hits found
# Query: Name_ID3 # 0 hits found
# Query: Name_ID4 # 140 hits found
# Query: Name_ID5 # 0 hits found
# Query: Name_ID6 # 60 hits found