我想重命名几个文件的格式
libabc-x86_64-gnu-linux.a
libasdfgh-x86-gnu-linux.a
全部按格式
libabc.a
libasdfgh.a
使用Bash。我已经编写了regex (libpj[^-]*).*,它应该将有趣的部分保留在捕获组1中。
for i in `ls *.a`; do mv "$i" "${i/(lib[^-]*).*/\1}"; done
但是Bash给出了许多形式上的错误
mv: 'libabc-x86_64-gnu-linux.a' and 'libabc-x86_64
系统:
后缀3.1.2
CentOS 6.8
x86_64上的内核和CPU Linux2.6.32-642.2.el6.centos.plus.x86_64
Dovecot,PostGrey,Amavis
启动后缀后给出警告消息。
[root@sun etc]# postfix start
postfix/postfix-script: warning: group or other writable: /etc/postfix/./master.cf
postfix/postfix-script: starting the Postfix mail system
更新1:
我找到了原因。给出
我对unix和linux脚本比较陌生,有几个问题:
首先是我的剧本:
for fileref in Ref/*.bed; do
for filename in Data/*.bed; do
bedops -e 1 $fileref $filename > "${fileref}${filename}.out"
done
done
我希望以两个文件(这两个文件是从循环遍历每个目录中收集的)作为输入来执行-e命令,并将输出文件作为两个文件名的连接(最好在末尾没有.bed )。有什么好办法吗?
名为animals的原始文件如下所示:
dog
cat
dolphin
cat
这个命令通过将sed '/dog/i\ Linux Scripting' animals放在Linux Scripting之前来工作,我得到了以下内容:
Linux Scripting
dog
cat
dolphin
cat
然而,如果我做了动物头之后,文件是不变的。
$ head animals
dog
cat
dolphin
cat
如何以覆盖现有文件的方式执行此操作?
注意:用于多个文件,我希望animals与*.txt保持一致