在使用basename处理find文件列表时,我遇到了一个问题。出于某种原因,basename决定在只有两个文件时删除find列表的第二项。
gas$ ls -l
total 8
-rwxrwxrwx 1 gas staff 54 Feb 26 19:00 find_sh.sh
-rw-r--r-- 1 gas staff 0 Feb 26 19:21 test-file.sh
gas$ find . -type f -name '*.sh'
./find_sh.sh
./test-file.sh
gas$ basename $(find . -type f
我有以下代码
#!/bin/bash
v=""
echo "Please enter your email id"
read em
$mai=`sqlplus -s abc/xyz << EOF
SELECT REGEXP_SUBSTR ('$em','[^_]+', 1, 1) FROM..
for f in "$em"*
do
echo "Processing $f file";
#mail -a $f -s " Test" $em <
我希望for循环为/root/Desktop/match/jars/44a65820/*下的所有文件创建符号链接,例如,在这个路径下,/root/Desktop/match/jars/作为符号链接没有版本44a65820。
match@match:~/Desktop/match/jars# ls -ll
total 4
/root/Desktop/match/jars/match-five.jar -> /root/Desktop/match/jars/44a65820/match-five-44a65820.jar
/root/Desktop/match/jars/match-four
我想重命名几个文件的格式
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
我正在使用这个bash脚本添加一个标记文件名作为一个子弹在前面的事情。但是,我想省略扩展.md,只保留名称,例如foo.md,我保留foo。有人能告诉我如何使这个剧本行得通吗?
for f in $(grep --include=*.md -riL "slug:" /your_directory/);
do sed -i "/date:.*/aslug: \/$(basename $f)\/" $f;
done
系统:
后缀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 )。有什么好办法吗?
我使用以下代码将.txt文件中的文本提取到列表中
with open("german.txt", "r") as f:
stopwords = []
for item in f:
# print(item)
stopwords.append(item)
print(stopwords)
german.txt文件的示例
aber
alle
allem
allen
aller
alles
als
结果
['aber\n', 'alle\n', 'allem\n',
名为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保持一致