最近では、特定のフォルダ内の特定のファイルを自動的に検索する必要があり、ファイルパスとファイル名を別々に保存する必要があります。 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 を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
3つの機能: 1. コンテンツの垂直方向の自動中央揃え2. デフォルトのプロンプトテキストは灰色で表...
目次WXS レスポンス イベントプランAページ構造とスタイルWXS イベントコールバック関数WXS ...
背景データ ウェアハウス モデリングでは、何ら処理されていない元のビジネス レイヤー データは OD...
ページ内の a タグをクリックした後、ページ内の対応する場所にジャンプするようにします。方法は非常に...
目次Object.defineProperty メソッドのレビューデータブローカーとは何ですか? V...
目次シナリオ中核問題ステータス監視状態監視の利点国家監視の欠点復興実行のアイデア依存関係の収集要約す...
オンライン情報を参考に、cmakeを使用してCentOS6.8サーバーにMySQL5.7.18をイン...
エラーの説明Docker Desktop をインストールすると、WSL2 (Windows ベースの...
今日は、いくつかの一般的なテキスト処理コマンドとvimテキストエディタを紹介します。 3日目 - 一...
目次一般的なアップロードコンポーネントの開発以下の機能を実装する必要がありますカスタムテンプレートサ...
XHTML タグには、div、ul、li、dl、dt、dd、h1~h6、p、a、addressa、s...
Shtml と asp は似ています。shtml という名前のファイルでは、asp の命令と同様に、...
序文ヒストグラムは、RDBMS によって提供される基本的な統計情報です。最も一般的に使用されるのは、...
SQL 左結合、右結合、内部結合、自然結合 さまざまな結合の概要SQL には、左結合、右結合、内部結...
はじめに使えるかもしれないが、あまり使われていない、シンプルで実用的なDockerコマンドをいくつか...