linux命令行:包含数字和文件名的文件名替换字符串

时间:2013-12-09 19:29:43

标签: linux unix command-line operating-system kernel

所以我是linux的新手 我想知道如何做以下

1列出包含数字的所有文件名 [我知道

  $ls *[0-9]*  

但是如果我有一个以数字开头的文件

,它就无法工作

2 - 在屏幕上用“xx”打印输出文件名中的任何“an”并将其存储在文件中

我到了

ls | tr -u  "an" xx >modified.txt

问题是它将a更改为x而n更改为x ...但我希望一起不是单独的

由于

1 个答案:

答案 0 :(得分:0)

列出包含数字的文件的所有名称 对于以数字开头的文件,您的示例适用于我,因此您可能想要澄清您所使用的Linux系统类型,或者您正在使用的shell或语言。

# In sh/bash:
ls *[0-9]*
# with perl:
perl -e '@globbed_files = <*[0-9]*>; print "@globbed_files\n"'
# With find (filters out directories):
find -maxdepth 1 -name '*[0-9]*' -type f

将输出中的文件名中的任何“an”替换为屏幕上的“xx”,并将其存储在文件中

ls | sed 's/an/xx/g' | tee file.out