文字列を特定の文字に切り捨てる[閉じる]

文字列を特定の文字に切り捨てる[閉じる]

サイトを検索して同様の質問を見ましたが、うまくいくことはできません。私は以下に従おうとしています。文字列を特定の場所に分割しかし、成功しませんでした。私はコーエンと一緒に働いています。

私は主に渡されるファイルのディレクトリが欲しい。したがって、ファイルは次のようになります。

/home/me/working/from/here/howareyou.txt

だから私は以下を取得したいと思います:

/home/me/working/from/here/

私は成功せずにこれを試しました。

THEDIR="${1%//*}"

しかし、それは全体の議論を吐き出すだけです。どんな助けでも大変感謝します。ありがとうございます。

答え1

スラッシュを使う

THEDIR="${1%/*}"

遅いですが覚えやすいですdirname

答え2

私はrevでcutを使うのが好きです。デフォルトでは、ファイルのフルパスをrevにパイプして文字列名を逆に変更します。その後、パイプを介して切断し、目的のフィールド番号の後に「-」を追加してから反転します。

結果は似ています。

echo "$name" | rev | cut -d'/' -f2- | rev

まだわからない場合は、区切り文字(-dでマーク)の周りに文字列を分割し、目的のフィールド(-fでマーク)を選択します(文字列の2番目の部分が必要であるという意味で2を渡します)。マイナス記号を追加します。文字は文字列の最後まで必要であることを意味します。 (マイナス記号を使用しないと、次の区切り文字で文字列が停止します。)

関連情報