最近では、特定のフォルダ内の特定のファイルを自動的に検索する必要があり、ファイルパスとファイル名を別々に保存する必要があります。 Python の walk を使って実現することもできますが、少し複雑に感じます。そこで、Linux の組み込みコマンドでこのタスクを完了できるかどうかを確認したいと思います。 環境 検索対象となるディレクトリ構造は次のとおりです . |____test | |____test2.txt | |____test.py | |____test.txt | |____regex.py |____MongoDB | |____.gitignore | |____cnt_fail.py | |____db 目標1: すべてのpyファイル名を取得する find . -name '*.py'のみを使用して検索すると、結果はパスになります
ファイル名だけが必要な場合は、Linuxが提供するコマンドbasenameを使用できます。 basename を使用して find のすべての検索結果を処理するには、find のパラメータ -exec を使用する必要があります。 最後のコマンドは次のとおりです。 find . -name '*.py' -exec basename {} \; 結果:
{} は -exec オプションと組み合わせて使用され、すべての結果を照合してファイル名を抽出します。 目標 2: すべての py ファイル パスを取得し、重複を削除し、先頭の「./」文字を削除します。 Linuxにはファイルパスを取得するコマンドdirnameもあります 前のコマンドを少し変更して、すべてのファイルパスを表示します。 find . -name '*.py' -exec dirname {} \;
重複したパスがあることがわかります。Linux で重複を削除するには、sort を使用して -u パラメータを追加します。-u パラメータは、ソート結果の重複を削除するために使用されます。前のコマンドの出力を入力として sort に渡す必要があり、当然パイプが考えられます。 パイプ コマンド演算子は | であり、前のコマンドによって送信された正しい出力情報、つまり標準出力情報のみを処理できます。 ソートを追加した後のコマンドは
実行結果は次のとおりです。
最後に、cut を使用して各パスの前の ./ 文字を削除します。パラメータ -c3- は、文字列の 3 番目の文字 (開始位置は 1) から末尾までの部分文字列を抽出することを意味します。最後のコマンドは次のとおりです。 実行結果:
以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
ハイパーリンク。「リンク」とも呼ばれます。ハイパーリンクは、私たちが閲覧する Web ページのいたる...
今日、ブラウザの互換性の問題にいくつか遭遇しました。そのうちの 1 つは奇妙に感じました。Firef...
前回の記事では、JS を使って簡単な揺れ効果を実現する方法を紹介しました。ご興味があればクリックして...
実験環境• 最小限のインストール済みの CentOS 7.3 仮想マシン• 構成: 1 コア/512...
CSS3 は、要素の 2D 平面変換と視覚的な 3D 空間変換を実装します。2D 変換はより頻繁に使...
序文MySQL では、InnoDB はストレージ エンジン レイヤーに属し、プラグインとしてデータベ...
序文Tomcat は、無数のチューニング オプションを備えた、広く使用されている Java Web ...
背景Navicat は、最高の MySQL 視覚化ツールです。ただし、ビューのインポートとエクスポー...
エラー発生: MySQL 5.7 から SQL にデータベースをエクスポートし、それを MySQL ...
mysql 5.7.19 winx64解凍版のインストールチュートリアルを収録しました。具体的な内容...
目次1 はじめに2 基本的な使い方2.1 方法2.2 計算プロパティ2.3 リスナーを見る3 3つの...
以前、上司からログイン後にチェックマークを表示できるプログラムを作るように言われたのですが、Baid...
セットアップは、結合された API を記述するために使用されます。テンプレートが使用できるようにする...
CentOS 6.4 環境で MySQL 5.1 を 5.5.36 にアップグレードする手順を記録し...
序文仮想通貨の狂気的な投機により、マイニングウイルスは犯罪者が最も頻繁に使用する攻撃方法の 1 つに...