GNU/Linux >> Linux の 問題 >  >> Ubuntu

文字列の一部のみをBashの変数に割り当てますか?

ユーザーから特定の絶対ファイルパスを受け取り、 FIRSTのみを含まない文字列になる変数を作成したいと思います。 ファイルパスの2つのコンポーネントですが、印刷などはありません。

たとえば、絶対パスは次のようになります。

/home/myusername/folder1/folder2/folder3

そして、それは「target_path」に保存され、「mydir」は次のようになります:

/folder1/folder2/folder3

さまざまな方法でcutコマンドを使用してみましたが、成功しませんでした。

承認された回答:

bashの文字列操作の使用:

$ a=/home/myusername/folder1/folder2/folder3
$ echo "${a#/*/*/}"
folder1/folder2/folder3

したがって、必要な文字列は次のようになります(先頭のスラッシュを追加し直します):

b="/${a#/*/*/}"

変数aの場合 、${a#foo} fooに一致する最短の文字列を削除します 開始から aの 。したがって、3つの/を含む最短の文字列を削除します (パスの先頭のスラッシュを含む)、絶対パスの最初の2つのコンポーネントを削除します。


Ubuntu
  1. Bash動的(変数)変数名?

  2. SedでBash文字列変数への参照を使用しますか?

  3. Bashスクリプトで文字列を分割する方法

  1. bash の変数を持つエイリアス

  2. パスに bash スクリプトを追加する

  3. bash - 大文字と小文字を区別しない変数のマッチング

  1. Bashスクリプト(I)

  2. パス変数がBashで設定されている場所の完全なビュー?

  3. Bash変数で特定の文字のみを許可するにはどうすればよいですか?