ユーザーから特定の絶対ファイルパスを受け取り、 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つのコンポーネントを削除します。