基本的に./foo/bar
を./foo/bar/bar
に変換したいとします。私は最初にsedを試しましたが、私が思いついた正規表現は、sedがサポートしていないlookaround((?<=s\/)(.*)
)または\K
エスケープシーケンス(.*\/\K.*
)を使用しています。基本名を抽出してパスに追加する方法
答えて
「どのように私は/path/to/name
に/name
を追加しない」の一般的なケースでは、あなたはパラメータ展開を使用することができますが:
$ var='./foo/bar'
$ echo "$var/${var##*/}"
./foo/bar/bar
${var##*/}
は(何で終わる*/
の最長の可能なマッチで$var
の値に展開されますスラッシュ)を最初から削除します。
あなたは行ごとにこれらのエントリのいずれかを使用してファイルを持っている場合、あなたはSEDで、このような何かを行うことができます:
$ cat infile
./foo/bar
./foo/bar/baz
./path/to/file
$ sed 's/\([^/]*\)$/\1\/\1/' infile
./foo/bar/bar
./foo/bar/baz/baz
./path/to/file/file
これは、それぞれの行の最後の/
後にすべてのものをキャプチャし、スラッシュを追加し、捕獲シーケンスを行の最後に追加します。
何も良い古い*パラメータの展開で部分文字列を削除する*、良い仕事。 –
@ DavidC.Rankin追加:_mostly_。 :)この答えは_most_の場合にはうまく簡潔です。 DWIM: '/ foo/bar /'、 '/ foo/bar //'(例えば、スラッシュ(es))や '..'のような角の場合(親ディレクトリ、' ./ .. 'そういうエキゾチックな(しかし有効な)_パス)。だから、いい答えですが、何もないビートは完全に真実ではありません。 ;) – jm666
- 1. OAuth2CodeGrantFlowのヘッダーに基本認証を追加する方法
- 2. Springブートlogging.configプロパティに基本認証を追加する方法
- 3. Axis2サービスに基本認証を追加する方法は?
- 4. SOAP基本認証要求をWSDLに追加する方法
- 5. ファイル名を含まないパス名の抽出方法
- 6. パス名の一部を取得してインデックスに追加する方法
- 7. 基本的なブロガーテンプレートの応答メディアクエリを追加する方法
- 8. gulpの角埋め込みテンプレートに基本パスを追加するには
- 9. UITableviewでUITextFieldを追加する基本
- 10. 基本型を変更せずにオブジェクトにプロパティを追加する方法
- 11. サンプラーに追加するとJSONパス抽出プログラムがエラーをスローする
- 12. シェフサーバースーパーマーケット料理本にアドオンとして追加する方法
- 13. 基本価額ペアにarraylistを追加
- 14. 基本抽象クラスの動作をオーバーライドする方法は?
- 15. java;カスタム位置にコンポーネントを追加する基本的な方法(jframe)
- 16. ASP .NetコアのSwaggerに基本認証ヘッダーを追加する方法
- 17. トレンド内にカスタム投稿を追加する方法マガジンの基本Wordpressテーマ
- 18. 基本的なS3 CodeBuildにロールバック機能を追加する方法
- 19. Rのファイル名を抽出して使用する方法R
- 20. アカウントのユーザー名に基づいてURLを追加する方法
- 21. URLの終わりを抽出してhrefに追加する
- 22. ADグループからユーザーを抽出してメールボックスに追加する
- 23. 正規表現を抽出して配列に追加する
- 24. データベースから抽出したオブジェクトをarraylistに追加する方法は?
- 25. Androidのホーム画面に追加基本
- 26. 基本的なエンティティに追加frameword + crud
- 27. URLへのリンクを抽出してURLに追加します。
- 28. パスからのファイル名の抽出MYSQL
- 29. - パスからファイル名と拡張子を抽出するには?
- 30. libfilesにパスを正しく追加する方法は?
その内容の単一の変数については?このような行がたくさんあるファイルですか? –
@Benjamin W. findコマンドの出力用です:find。 -mindepth 2 -type d! -path。 ! -path ./foo – user3044148
**あなたの**コードの欠けている部分について話さなくても、問題の説明もあいまいです。パスが次のうちのどれかになる場合、どうすればいいでしょうか?: '/'または '.'や' ..'や './ ..'など?または? './qoo/qxx/../../../ some/exotic/beauty /../'です。 – jm666