本記事は、cut,awkコマンドで複数のスペースで区切られた特定の位置の文字列を抜き出す方法について記します。以下のようなスペースインデントされたテキストファイルを使用します。†awkの場合は、スペースが続いていても気にする必要はありません。以下のコマンド例は2番目の文字列を抜き取ることができます。$2を$1にすれば1番目の文字列を抽出します。$3にすれば3番目の文字列を抽出することができます。順番を逆にするのであれば、以下のようにすれば実現できます。文字列と文字列の区切りにスペースが複数あるので、連続するスペースを1つのスペースにするため、trコマンドを使用します。trの-sオプションを使い、複数スペースを一つのスペースに変換させます。その後、cutコマンドで区切り文字にスペースを指定し2番目のフィールドを抽出しています。2centosubuntuwindows8.1netbsdsolaristrの-sオプションがわかりづらいと思いますので、以下のようにしても実現できます。trの-sオプションを使って、複数スペースを,に置換してみます。コマンドで連続するスペースをカンマに置換します。redhat,centos,fedoradebian,ubuntu,mintwindows10,windows8.1,windows7freebsd,netbsd,openbsdhp-ux,solaris,aix-cutコマンドで区切り文字にカンマを指定し3番目の文字列(フィールド)を抽出します。aix上記の通り、trとcutを組み合わせることにより、連続するスペースを一つのスペースにしたり、カンマに置換し、cutコマンドにより指定した位置(フィールド)の文字例を抽出することができます。aixtabの場合は、以下のようにすればcutで実現できます。awkの場合は、スペースもタブの同じ動作になります。†スペースとtabの混在は以下のようにして連続するスペースまたはtabを1つの文字に置換します。以下の例ではカンマに置換しています。','redhat,centos,fedoradebian,ubuntu,mintwindows10,windows8.1,windows7freebsd,netbsd,openbsdhp-ux,solaris,aix上記のような出力になれば、あとは、上述のようにcutを使えば指定した文字列を抽出することができます。ちなみにawkの場合、スペースとtabが混在していても、以下のように指定した位置(フィールド)の文字列を抽出することができます。}'centosubuntuwindows8.1netbsdsolaris以上、awkとcutコマンドを使用し複数のスペースで区切られている文字列を抜き出すコマンド実行例の紹介でした。