Linux 提取不带扩展名的文件basename
我正在尝试使用Linux 提取不带扩展名的文件basename,linux,shell,unix,Linux,Shell,Unix,我正在尝试使用find命令递归列出目录中的所有pdf文件: find -name "*.pdf" > all_pdf.txt 输出正确,如图所示(all_pdf.txt): 但我的要求是只列出所有文件的basename,而不包括其扩展名,如: c_primer_5th_edition.pdf C++Complete Reference (3rd Ed.).pdf Bjarne Stroustrup - The C++ Programming Language(Third Edition)
find
命令递归列出目录中的所有pdf
文件:
find -name "*.pdf" > all_pdf.txt
输出正确,如图所示(all_pdf.txt):
但我的要求是只列出所有文件的basename
,而不包括其扩展名,如:
c_primer_5th_edition.pdf
C++Complete Reference (3rd Ed.).pdf
Bjarne Stroustrup - The C++ Programming Language(Third Edition).pdf
...
如何通过提供filename
(在本例中为'all_pdf.txt')作为basename
命令的参数来实现这一点。使用sed
要从all_pdf.txt
中的每一行中删除目录名,请使用:
$ sed -e 's|.*/||' all_pdf.txt
data structures , algorithms and applications in c++ by sartraj sahani.pdf
C++Complete Reference (3rd Ed.).pdf
Bjarne Stroustrup - The C++ Programming Language(Third Edition).pdf
Essential_C++.pdf
[...snip...]
此外,如果要删除文件扩展名,请使用:
$ sed -e 's|.*/||' -e 's|\.pdf$||' all_pdf.txt
data structures , algorithms and applications in c++ by sartraj sahani
C++Complete Reference (3rd Ed.)
Bjarne Stroustrup - The C++ Programming Language(Third Edition)
Essential_C++
[...snip...]
使用grep
要同时删除.pdf
扩展名,请执行以下操作:
$ grep -Po '[^/]*(?=.pdf$)' all_pdf.txt
data structures , algorithms and applications in c++ by sartraj sahani
C++Complete Reference (3rd Ed.)
Bjarne Stroustrup - The C++ Programming Language(Third Edition)
Essential_C++
[...snip...]
$ awk '{sub(/.*\//, ""); sub(/\.pdf$/, "")} 1' all_pdf.txt
data structures , algorithms and applications in c++ by sartraj sahani
C++Complete Reference (3rd Ed.)
Bjarne Stroustrup - The C++ Programming Language(Third Edition)
Essential_C++
[...snip...]
使用awk
要同时删除.pdf
扩展名,请执行以下操作:
$ grep -Po '[^/]*(?=.pdf$)' all_pdf.txt
data structures , algorithms and applications in c++ by sartraj sahani
C++Complete Reference (3rd Ed.)
Bjarne Stroustrup - The C++ Programming Language(Third Edition)
Essential_C++
[...snip...]
$ awk '{sub(/.*\//, ""); sub(/\.pdf$/, "")} 1' all_pdf.txt
data structures , algorithms and applications in c++ by sartraj sahani
C++Complete Reference (3rd Ed.)
Bjarne Stroustrup - The C++ Programming Language(Third Edition)
Essential_C++
[...snip...]
术语“扩展名”通常指文件名的尾随部分,紧跟在最后一个
(在本例中为pdf
)。
$ awk '{sub(/.*\//, ""); sub(/\.pdf$/, "")} 1' all_pdf.txt
data structures , algorithms and applications in c++ by sartraj sahani
C++Complete Reference (3rd Ed.)
Bjarne Stroustrup - The C++ Programming Language(Third Edition)
Essential_C++
[...snip...]