shell中提取文件名【】中的数字

shell中提取文件名中的数字;我有很多文件名 诸如 [2014]xxxx.p0 [2016]xxxx.p0 我现在想要提取2014到一个变量中;如何用awk实现;我自己写的eval `ls *p0|awk -F '"[]"' '{print "a["NR"]="$1"}'`总是报错

如果使用eval,试试这样:

直接数组赋值。一条一条地可能有问题,没试出来

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-06-30
应该是把 [] 特殊符号,未当成字符处理,你把 [] 符号 转译 下试下,追问

我一开始就用\[转译了 出错一样的 貌似 ‘ ’ 里的不会被shell解释吧?

本回答被提问者采纳

在powershell中如何获得文件名中的一些关键字?
获取文件名称中的特征字符串 files=@(dir -liter '.'|?{$_ -is [System.IO.FileInfo]});for($i=0;$i -lt $files.length;$i++){ m=[regex]::matches($files[$i].BaseName,'#[^#\\s]+');if($m.count -ge 1){ write-host $files[$i].Name;foreach($k in $m){write-hos...

shell脚本如何从json文件读取一个某个值
其中cat $1表示使用$1传入的json文件名或路径来读取文件内容,jq是一个JSON解析器工具,可以使用jq命令来从JSON数据中提取想要的信息。.time表示提取出JSON对象中的time字段,-r选项表示输出裸数据。最后将提取出来的时间参数值保存在time变量中,并打印出来。

写一个shell脚本,读取配置文件算出配置文件中是数字的和。 配置文件su...
其中 for i in `cat $V_CFG_DIR\/tab_tmp2.cfg` 是读取配置文件tab_tmp2.cfg 如果你参数的名字需要通过参数来传递的话那就改下,添加一个参数并把tab_tmp2.cfg换成你添加的参数(就像参数V_DATA_DATE一样通过外部传入),另外加法求和你百度下就可以搞定了,快看看吧,有详细的注释 功能:...

怎样使用一条shell命令把文件夹下的文件名中的部分字符替换掉_百度知 ...
n 读取下一行 s\/123\/xyz\/g 将123替换为xyz,全局替换,同一行中出现几次替换几次 :a 设定跳转标签a \/eee\/!ba 若当前行匹配不上eee,则跳转到标签a处继续执行,构成一个循环。若匹配到eee,则退出循环,sed重新对读入的每行匹配aaa。由于sed没有加-n静默选项,所以默认对每行数据处理后都打...

Shell编程-字符截取命令
Shell编程中的字符截取和格式输出命令是数据处理中的重要工具。首先,让我们理解cut命令,它通过-f选项提取文件中的指定列,如指定第几列,或使用-d选项以特定分隔符分割列。例如,创建一个文件演示其用法,注意空格是Tab键。cut命令常与grep配合使用,但遇到复杂间隔时,awk命令更适用,尤其是在处理多...

shell循环取出目录下的文件名然后作为变量在程序中运行
!\/bin\/sh filelist=$(ls)echo "hello"for file in $filelist do if [ -d $file ]then tar -cf $file.tar $file fi done

linux脚本文件中怎么从文件中读取数据并赋值给变量?
bash !\/bin\/bash 3、接着,保存文件并赋予执行权限,使用`chmod +x shell.sh`命令,确保脚本可以被系统执行。然后,通过命令`.\/shell.sh`来运行你的脚本。4、在脚本中,你需要读取外部文件的内容。假设你的文件名为data.txt,你可以通过`read`命令或者`IFS`(Internal Field Separator)变量来读取,...

求shell脚本 文件名都是数字 找出大于指定数字的文件
比如要列出大于4的文件 ~$ ls mysqlmaster-bin.00000[!0-4]

shell一行一行读取?
con=`catprofile|awk{printf$0}`profile是你的配置文件名,这个是把所有内容存到con中。sed-n开始行,结束行pdata.txt;显示文件X行到Y行的内容:命令:sed-n10,18pdata.txt。head\/tail用法。tail用法:tail经常用来查看文件末尾的数据,在shell中可以获取文本中指定数据行。shell怎么读取文件中的每...

写一个shell脚本 传入参数 根据参数 筛选出文件夹中文件名包含该参数的...
!\/bin\/bashsig=$1for file in `ls`do if echo "$file" | grep "$sig" &> \/dev\/null then echo "$file" fidone

相似回答