相关疑难解决方法(0)

从Bash脚本中的路径获取文件名

如何在没有扩展名且没有路径的情况下获取文件名?

以下给我没有扩展,但我仍然附加路径:

source_file_filename_no_ext=${source_file%.*}
Run Code Online (Sandbox Code Playgroud)

bash shell scripting

338
推荐指数
6
解决办法
37万
查看次数

在bash中提取没有路径和扩展名的文件基名

给定这样的文件名:

/the/path/foo.txt
bar.txt
Run Code Online (Sandbox Code Playgroud)

我希望得到:

foo
bar
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?

#!/bin/bash

fullfile=$1
fname=$(basename $fullfile)
fbname=${fname%.*}
echo $fbname
Run Code Online (Sandbox Code Playgroud)

什么是正确的方法呢?

unix linux bash filenames

303
推荐指数
6
解决办法
47万
查看次数

Linux shell脚本将前导零添加到文件名

我有一个大约1,700个文件的文件夹.它们都被命名为1.txt1497.txt等.我想重命名所有文件,以便所有文件名都是四位数.

即,23.txt成为0023.txt.

什么是shell脚本才能执行此操作?或者一个相关的问题:我如何使用grep只匹配包含的行\d.txt(即一个数字,然后一个句点,然后是字母txt)?

这是我到目前为止所拥有的:

for a in [command i need help with]
do
  mv $a 000$a
done
Run Code Online (Sandbox Code Playgroud)

基本上,运行三次,使用命令找到一位数,两位数和三位数文件名(初始零的数量已更改).

linux bash shell grep

55
推荐指数
5
解决办法
8万
查看次数

Bash脚本:从文件名中删除扩展名

我有以下bash脚本:

tar -zxvf $1
cd $1
Run Code Online (Sandbox Code Playgroud)

它应该提取存档文件并输入已创建的目录.通常,包归档文件创建具有相同名称的目录,如文件,没有扩展名,例如,mpc-1.0.1.tar.gz创建mpc-1.0.1目录.如何更改行cd $1以获取目录名称?存档文件有几个扩展名:tar.gz,tat.xz,tar.bz2.

linux bash

31
推荐指数
0
解决办法
5万
查看次数

用于将文件从一个位置复制到另一个位置并重命名的Shell脚本将当前日期添加到每个文件

我的服务器中有一个包含一些文件的文件夹.这些都是自动化的,这意味着我们每天都会自动获取新文件,这将覆盖旧文件.所以想要备份这些数据.如何通过在复制时使用当前日期重命名文件,将所有这些文件复制到另一个文件夹中.

例如:我有一个名为folder1的文件夹,其中包含4个文件.此文件夹的路径是home/webapps/project1/folder1

  1. aaa.csv
  2. bbb.csv
  3. ccc.csv
  4. ddd.csv

现在我想将所有这四个文件复制到名为folder2的不同文件夹中.此文件夹的路径是home/webapps/project1/folder2.复制这些文件时,我想重命名每个文件并将当前日期添加到文件中.所以我在folder2中的文件名应该是..

  1. aaa091012.csv
  2. bbb091012.csv
  3. ccc091012.csv
  4. ddd091012.csv

我想为此编写一个shell脚本.请给我一些想法或一些与此相关的示例脚本.

unix bash shell

22
推荐指数
2
解决办法
19万
查看次数

在bash中检查文件扩展名的最简单方法是什么?

我有一个shell脚本,如果文件是压缩的(以.gz结尾),我需要执行一个命令,如果不是,则需要执行另一个命令.我不确定如何处理这个,这里是我正在寻找的概述:

file=/path/name*

if [ CHECK FOR .gz ]
then echo "this file is zipped"
else echo "this file is not zipped"
fi
Run Code Online (Sandbox Code Playgroud)

unix bash shell gzip

19
推荐指数
3
解决办法
6万
查看次数

Bash中的百分比符号,它用于什么?

我有一个结尾的文件名,.zip我只想要没有zip的文件名.在这里,我在bash中找到了一个技巧.

$f="05 - Means-End Analysis Videos.zip"
$echo "${f%*.zip}"
05 - Means-End Analysis Videos
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?怎么%*.zip删除我的扩展名?

bash

15
推荐指数
1
解决办法
9200
查看次数

循环遍历HDFS目录中的文件

我需要遍历Hadoop文件系统中的所有csv文件.我可以列出HDFS目录中的所有文件

> hadoop fs -ls /path/to/directory
Found 2 items
drwxr-xr-x   - hadoop hadoop          2 2016-10-12 16:20 /path/to/directory/tmp
-rwxr-xr-x   3 hadoop hadoop 4691945927 2016-10-12 19:37 /path/to/directory/myfile.csv
Run Code Online (Sandbox Code Playgroud)

并且可以循环遍历标准目录中的所有文件

for filename in /path/to/another/directory/*.csv; do echo $filename; done
Run Code Online (Sandbox Code Playgroud)

我怎么能把这两者结合起来呢?我试过了

for filename in `hadoop fs -ls /path/to/directory | grep csv`; do echo $filename; done
Run Code Online (Sandbox Code Playgroud)

但这给了我一些废话

Found
2
items
drwxr-xr-x

hadoop
hadoop
2    
2016-10-12
....
Run Code Online (Sandbox Code Playgroud)

bash hadoop hdfs

13
推荐指数
1
解决办法
8307
查看次数

Bash从长路径中提取文件基名

bash我尝试glob从目录中的文件列表,以作为程序的输入.但是,我还想给这个程序提供文件名列表

files="/very/long/path/to/various/files/*.file"
Run Code Online (Sandbox Code Playgroud)

所以我可以这样使用它.

prompt> program -files $files -names $namelist
Run Code Online (Sandbox Code Playgroud)

如果glob给我:

/very/long/path/to/various/files/AA.file /very/long/path/to/various/files/BB.file /very/long/path/to/various/files/CC.file /very/long/path/to/various/files/DD.file /very/long/path/to/various/files/ZZ.file
Run Code Online (Sandbox Code Playgroud)

我想获得AA BB CC DD ZZ的列表,以便在没有长路径名和文件扩展名的情况下提供我的程序.但是我不清楚如何从那里开始!任何提示非常感谢!

bash filenames glob

12
推荐指数
2
解决办法
3万
查看次数

用于这个bash文件名提取技术?

我有一个bash脚本的一部分,它获取一个没有扩展名的文件名,但我试图了解这里真正发生了什么.什么是"%%"的用途?有人可以详细说明bash在幕后做了什么吗?如何在一般基础上使用这种技术?

#!/bin/bash

for src in *.tif
    do
    txt=${src%%.*}
    tesseract ${src} ${txt}
    done
Run Code Online (Sandbox Code Playgroud)

linux bash shell filenames operators

9
推荐指数
1
解决办法
1万
查看次数

标签 统计

bash ×10

shell ×5

linux ×4

filenames ×3

unix ×3

glob ×1

grep ×1

gzip ×1

hadoop ×1

hdfs ×1

operators ×1

scripting ×1