我有一个公制的 .txt 文件,我想加载到数据库中。
这些表与 .txt 文件同名,但没有扩展名。
所以我想执行命令
for f in *.txt; do mysql -u root -p -e "LOAD DATA LOCAL INFILE '$f' INTO TABLE $f" -D rn4; done
Run Code Online (Sandbox Code Playgroud)
但是,最后一个$f
让我头疼,因为我希望它只使用名称,而不是扩展名。
所以对于文件piRNA.txt
,命令看起来像
mysql -u root -p -e "LOAD DATA LOCAL INFILE 'piRNA.txt' INTO TABLE piRNA" -D rn4
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?
为了使答案对其他人有用,请不要只给我命令,而是请写一两行关于如何在一般情况下提取名称的信息。
您可以在 shell 脚本中这样做:
f=piRNA.txt
g=${f%.txt}
Run Code Online (Sandbox Code Playgroud)
执行
echo $f $g
Run Code Online (Sandbox Code Playgroud)
产生以下输出:
piRNA.txt piRNA
Run Code Online (Sandbox Code Playgroud)
使用该%
语法,您可以删除匹配的后缀模式。示例中的后缀模式是.txt
和f
是从中删除的变量。请注意,模式也可能包含通配符(参见bash 手册了解详细信息)。
与往常一样,如果您的文件名可能包含空格,您必须将变量的引用放入双引号中(例如"$f"
等)。
归档时间: |
|
查看次数: |
13419 次 |
最近记录: |