Notebook

これは日々の作業を通して学んだことや毎日の生活で気づいたことをを記録しておく備忘録である。

HTML ファイル生成日時: 2024/12/21 11:44:57.596 (台灣標準時)

shell script でのファイル名の操作

shell script において、パス名からファイル名を取り出したり、拡張子部分 を取り出したり、拡張子でない部分を取り出したりする方法をまとめておくで ござる。

Bourne shell の場合

Bourne shell の場合、以下のようにすればよいようでござる。


#!/bin/sh

# Time-stamp: <2022/04/22 23:21:53 (CST) daisuke>

# path name
pathname="/home/abc/bin/xyz.py"

# parent dir
parent=${pathname%/*}

# file name
filename=${pathname##*/}

# stem
stem=${filename%%.*}

# suffix
suffix=${filename##*.}

echo "path name  = $pathname"
echo "parent dir = $parent"
echo "file name  = $filename"
echo "stem       = $stem"
echo "suffix     = $suffix"

実行結果は以下の通りでござる。

% test.sh
path name  = /home/abc/bin/xyz.py
parent dir = /home/abc/bin
file name  = xyz.py
stem       = xyz
suffix     = py

csh の場合

csh の場合、以下のようにすればよいでござる。


#!/bin/csh

# Time-stamp: <2022/04/22 23:29:38 (CST) daisuke>

# path name
set pathname = /home/abc/bin/xyz.py

# parent dir
set parent = $pathname:h

# file name
set filename = $pathname:t

# stem
set stem = $pathname:t:r

# suffix
set suffix = $pathname:e

echo "path name  = $pathname"
echo "parent dir = $parent"
echo "file name  = $filename"
echo "stem       = $stem"
echo "suffix     = $suffix"

実行結果は以下の通りでござる。

% test.csh
path name  = /home/abc/bin/xyz.py
parent dir = /home/abc/bin
file name  = xyz.py
stem       = xyz
suffix     = py

fig_202204/man_sh_10.png
fig_202204/man_csh_10.png


Frequently accessed files

  1. Computer___Python/20220518_0.html
  2. Computer___Network/20230726_00.html
  3. Misc___Taiwan/20240207_00.html
  4. Computer___Network/20230516_00.html
  5. Computer___FreeBSD/20220621_0.html
  6. Computer___Python/20220715_0.html
  7. Computer___Network/20230508_00.html
  8. Food___Taiwan/20220429_0.html
  9. Computer___Network/20240130_00.html
  10. Computer___NetBSD/20220817_3.html
  11. Computer___Python/20220410_0.html
  12. Computer___Network/20240416_00.html
  13. Computer___NetBSD/20230119_00.html
  14. Computer___Debian/20210223_1.html
  15. Computer___Python/20221013_0.html
  16. Computer___Python/20210124_0.html
  17. Computer___NetBSD/20220428_0.html
  18. Computer___NetBSD/20220818_1.html
  19. Computer___NetBSD/20240101_02.html
  20. Science___Math/20220420_0.html
  21. Computer___Python/20240101_00.html
  22. Computer___NetBSD/20220808_0.html
  23. Computer___TeX/20230503_00.html
  24. Science___Astronomy/20220503_0.html
  25. Computer___NetBSD/20230515_00.html
  26. Computer___Network/20220413_1.html
  27. Computer___NetBSD/20210127_0.html
  28. Computer___TeX/20231107_00.html
  29. Computer___Python/20220816_1.html
  30. Computer___Python/20230717_01.html


HTML file generated by Kinoshita Daisuke.