awk - 最後の列または最後の列が空の場合、最後の列を印刷します。

awk - 最後の列または最後の列が空の場合、最後の列を印刷します。

AWK文字列がファイル名または最後のフォルダ名を取得するために使用したいディレクトリの場合。

私は持っています:

 awk -F '/' '{print $NF}'

最後の列を印刷して、次の操作を行います。

 awk -F '/' '{print $(NF - 1)}

最後の列の前に1列を印刷します。

awk文字列にディレクトリのみがあり、ファイル名がないことをどのように識別できますか?この場合、最後の列の前に列を印刷します。

私の問題は、ディレクトリが次のようになることです。

./folder1/folder2/folder3/

この場合、最後の列は空です。私はawkこれを識別して印刷したいfolder3(したがって、最後の列の前に列があります)。

ベストアンサー1

ifOR?:演算子を使用してこれを実行できます。

awk -F '/' '{print $NF == "" ? $(NF - 1) : $NF}'
awk -F '/' '{if($NF == "") print $(NF - 1); else print $NF}'

おすすめ記事