我有一个file.txt
具有以下结构的文件:-
./a/b/c/sdsd.c
./sdf/sdf/wer/saf/poi.c
./asd/wer/asdf/kljl.c
./wer/asdfo/wer/asf/asdf/hj.c
如何从路径中仅获取 c 文件名。即,我的输出将是
sdsd.c
poi.c
kljl.c
hj.c
您可以使用 awk 轻松完成此操作。
设置字段分隔符 FS="/" 和 $NF 将打印每条记录的最后一个字段。
awk 'BEGIN{FS="/"} {print $NF}' file.txt
或者
awk -F/ '{print $NF}' file.txt
或者,您可以像这样使用 cut 和 unix 命令 rev
rev file.txt | cut -d '/' -f1 | rev
您可以使用basename
命令:
basename /a/b/c/sdsd.c
会给你sdsd.c
对于 中的文件列表file.txt
,这将执行以下操作:
while IFS= read -r line; do basename "$line"; done < file.txt
Perl 解决方案:
perl -F/ -ane 'print $F[@F-1]' your_file
您也可以使用 sed:
sed 's/.*[/]//g' your_file
使用sed
:
$ sed 's|.*/||g' file
sdsd.c
poi.c
kljl.c
hj.c