我在unix目录中有一个文件列表。所有这些都被称为something.bed,我希望将它们全部转换为something.txt
.bed格式很容易被txt编辑器读取,但在python等编码语言中不能被识别为txt文件,因此标准的txt解析脚本似乎无法读取。
对于任何具有中级unix体验的人来说,这可能是一个非常简单的问题,但是我没有使用unix并且环顾四周并且找不到快速答案
我试过了:
for i in *.bed
do cat > *.txt
done
它只提供了一个名为* .txt的文件,其中我正在寻找1.bed成为1.txt而2.bed成为2.txt等
非常感谢任何指针或解决方案
答案 0 :(得分:2)
for i in *.bed; do mv $i ${i/bed/txt}; done
实际上,以下会更安全,因为我的第一次尝试会转换为#bed; bed.bed"进入" txt.bed"。
for i in *.bed; do mv $i ${i/bed$/txt}; done
答案 1 :(得分:1)
只需在for
循环中正确添加变量:
for i in *.bed
do
cat $i > ${i%.*}.txt
done
虽然最好使用mv
:
for i in *.bed
do
mv $i ${i%.*}.txt
done
${i%.*}.txt
将i.bed
转换为i.txt.
为什么你的尝试不起作用?
for i in *.bed
do
cat > *.txt
done
当您在for
循环中时,要使用的变量是i
,而不是*
。也就是说,当循环遍历*.bed
文件时,它是存储值的i
变量。因此,您需要使用i
来引用它们。