特定の行の特定の場所にある単語を新しいファイルとして印刷するスクリプト

特定の行の特定の場所にある単語を新しいファイルとして印刷するスクリプト

以下は、特定の行と特定の場所からデータをコピーする必要があるファイルです。

 CP        I  ({010010010010010010010010010010}000 000)  234764-CTS_fsdfs_a_inv_33ghf/ZN
 ---       I  ({111100011111100000000000011100}111 111)  2518255-
 Q         O  ({001111100011111100000000000011}111 **1**11)  2520618-
 
  AP        I  ({010010010010010010010010010010}010 010)  23499764-fdsf_ccl_a_inv_3330gg/XX
 ---       I  ({111111111111111111111100000011}000 000)  2518255-
 Q         O  ({011111110011111111111111100000}000 **0**00)  2909918-

 QP        I  ({110010010010010010010010010010}010 010)  234764-ZZZ_ccl_a_inv_33305/ZZ
 ---       I  ({111111111111111111111100000011}000 000)  2518255-
 Q         O  ({011111111111111111111111100000}000 **1**11)  2599918-

注:**は元のファイルにはなく、新しいファイルに印刷する番号を識別するのに役立ちます。

Q行の太字だけを印刷する必要があります。内容を1行ずつ新しいファイルに保存します。 $3 で awk コマンドを使用すると、次のエラーが発生するため、$3 タイプのコマンドを持たないコードを提案してください。

can't read "3": no such variable

助けてくれてありがとう

ベストアンサー1

次のように試すことができます。

awk '$1=="Q"{split($4,a,""); print a[1]}' input_file >new_file

アイデアは、split独自の要素の各文字にヌル区切り文字を使用することです。

また、提案どおりに使用できます

awk '$1=="Q"{print substr($4,1,1)}' input_file >new_file

おすすめ記事