色々と便利な awk(1) のちょっとした小技を紹介してみます。 system() を利用する際の注意 awk(1) の中で外部コマンドを実行する場合は組み込み関数 system() が利用できますが、この関数を利用して外部コマンドを実行すると入出力 stream がオープンされるので、ファイルディスクリプタが消費されてしまいます。 ですので awk(1) 内で何度も system() を実行すると、オープンできるディスクリプタの上限を超過してしまい、 awk(1) の実行が中断されてしまう可能性があります。 ですので、 close() を利用して system() がオープンした stream を閉じれば良いのですが、 awk(1) の system() では stream を明示的に扱いません。その様な場合は system() で実行したコマンドを close() の引数で指定する事で
![awk(1) 小技 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/6c9fcbe90c949ee7ae94fbe40a0f05e5a96a1320/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9YXdrJTI4MSUyOSUyMCVFNSVCMCU4RiVFNiU4QSU4MCZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9MTU1MTI0ZjdkMDMxYjUxMWNlMjkzMjI1YjhlMjllN2Y%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwYnNkaGFjayZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9MTJmMzY4YTM0ODFiOGMxYTc0NTU0NDk5ZjAxM2Y4YjI%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D24a3f284913637c180f877118006d055)