Q&A
解決済
3回答
1784閲覧
総合スコア1648
sedとは、POSIX環境のために作られたコマンドラインエディタです。sedは編集スクリプトの指示のもとに複数のファイルを編集し、標準出力にその結果を出力します。
Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。
shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。
AWKは、UNIX 上で開発されたプログラミング言語で、CSVファイルなどのテキストファイルの処理を目的にデザインされています。
0グッド
0クリップ
投稿2020/07/03 03:54
0
sh1echo $DESKTOP_SESSION
sh
1echo $DESKTOP_SESSION
とすると
plain1/usr/local/share/xsessions/bspwm
plain
1/usr/local/share/xsessions/bspwm
と表示される状態にあります。 /usr/~/bspwm までは、不定として・・・。
末尾のスラッシュ以降を取得して
plain1bspwm
1bspwm
だけを表示したいのです。 「sed」や「awk」を使えばできそうなことは、理解しているのですが、これらをうまく使いこなせていないもので・・・。 お力添えください。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
質問へのコメント
回答3件
awk 汎用的に末尾データを抽出するなら、フィールドセパレータを指定して $NF(NFは現レコードのフィールド数)を書き出せば良いです。
awk1echo $DESKTOP_SESSION | awk -F'/' '{print $NF}'
awk
1echo $DESKTOP_SESSION | awk -F'/' '{print $NF}'
投稿2020/07/09 19:29
総合スコア6
回答へのコメント
2020/07/10 00:21
bash なら echo を挟むまでもなく ${DESKTOP_SESSION##*/} で、先頭部分を削除した文字列が作れます。それを echo するなりなんなりと。 bash の man ページで、「パラメータ展開」に詳細が載っています。
${DESKTOP_SESSION##*/}
汎用的には basename を使うところかと思います。$(basename $DESKTOP_SESSION) というようにすれば、末尾のファイル名部分だけが得られます。
$(basename $DESKTOP_SESSION)
投稿2020/07/03 04:02
総合スコア1681
2020/07/03 04:08
ベストアンサー
そのままbashで、
bash1echo ${DESKTOP_SESSION##*/}
bash
1echo ${DESKTOP_SESSION##*/}
としてみてください。
投稿2020/07/03 03:58
総合スコア11992
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.29%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
echo させた文字列の 末尾の部分を取得したい
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/10 00:21