我有一个bash变量深度,我想测试它是否等于0.如果是,我想停止执行脚本.到目前为止,我有:
zero=0;
if [ $depth -eq $zero ]; then
echo "false";
exit;
fi
Run Code Online (Sandbox Code Playgroud)
不幸的是,这会导致:
[: -eq: unary operator expected
Run Code Online (Sandbox Code Playgroud)
(由于翻译可能有点不准确)
请问,如何修改我的脚本以使其正常工作?
我使用以下命令循环目录中的所有文件:
for i in *.fas; do some_code; done;
Run Code Online (Sandbox Code Playgroud)
但是,我收到这样的订单:
vvchr1.fas
vvchr10.fas
vvchr11.fas
而不是vvchr1.fas,vvchr2.fas,vvchr3.fas,什么是数字顺序.
我尝试过sort命令,但没有成功.
我在x轴上使用了非常大的数字(数百万),所以当我使用时
set format x %6.0f
Run Code Online (Sandbox Code Playgroud)
我得到了像25000000这样的大数字.这是相当不错的,但需要很大的空间,所以只有很少的标签和读者丢失信息.
当我排除设置格式时,我会得到像2e + 07这样的东西,根据我的观点,对于读者来说,这是非常不友好和不寻常的.
我想格式化为25*(10 ^ 6),所以数字将是第一个,然后乘以10 ^ n,或类似的东西.如果x轴长约30000000点甚至更多,我认为这将是最好的解决方案.
但是,阅读手册,例如"如何更改数字的格式?" 来自http://t16web.lanl.gov/Kawano/gnuplot/tics-e.html并没有给我太多帮助.
先感谢您.
我想打印奇数行(1,3,5,7 ..)而没有任何改变,但偶数行(2,4,6,8)处理以grep开头的管道.我想把所有内容写入新文件(奇数行没有任何变化,偶数行的新值).
我知道如何在awk中打印每一行:
awk ' NR % 2 == 1 { print; } NR % 2 ==0 {print; }' file.fasta
Run Code Online (Sandbox Code Playgroud)
但是,对于偶数行,我不想使用{print; }但我想使用我的grep管道.
建议将不胜感激.非常感谢.
我有以下脚本
awk '{printf "%s", $1"-"$2", "}' $a >> positions;
Run Code Online (Sandbox Code Playgroud)
其中$a存储文件的名称.我实际上是将多个列值写入一行.但是,我想在我不在最后一行时打印一个逗号.
我非常喜欢使用unix命令,但我找到了点,我会发现嵌入式python部分很有用.这是我的代码:
#!/bin/bash -
echo "hello!";
exec python <<END_OF_PYTHON
#!/usr/bin/env python
import sys
print ("xyzzy")
sys.exit(0)
END_OF_PYTHON
echo "goodbye!";
Run Code Online (Sandbox Code Playgroud)
但是,只打印"hello".
$ ./script.sh
hello!
xyzzy
Run Code Online (Sandbox Code Playgroud)
如何修改bash脚本以完全嵌入python?那么可以将python变量中的值传递给bash变量吗?非常感谢.
我编写了一个从文件读取的程序,根据给定的参数处理它并写入一些输出.我很好奇,如果用户创建我的程序的更多实例(通过打开可执行文件)并在同一文件上运行它们时可能会出现任何奇怪的问题.
我从文件中读取while循环和file.ReadLine().
我从utf-8编码文件中读取数据.然后,此文件的部分内容将用作新创建的文件夹的名称.但是,我的文件夹名称是:
bohou _120328而不是bohouš_120328
如何为新创建的文件夹名称设置正确的编码?谢谢.
编辑:
我正在以这种方式从文件中读取信息:
System.IO.StreamReader file = new System.IO.StreamReader(nameOfFile);
while ((j = file.ReadLine()) != null) {
//manipulating string in j
}
Run Code Online (Sandbox Code Playgroud)
然后用.创建目录
if (Directory.Exists(folder) == false) {
Console.WriteLine("creating directory " + folder);
System.IO.Directory.CreateDirectory(@folder);
}
Run Code Online (Sandbox Code Playgroud)
如果我在我的Windows 7,64位计算机上运行我的应用程序,一切都很好.但是,如果我在其他使用WinXP等旧系统的计算机上运行,编码就错了,看起来就像这样
bohou?_120328
Run Code Online (Sandbox Code Playgroud)
在使用变量创建文件夹之前,我将i写入输出,但一切都很好.甚至文件夹名称也没问题.但不幸的是,只是在我的电脑上.
编辑2:
事情变得更加奇怪.我用过这段代码如何从.NET中的字符串中删除变音符号(重音符号)?删除变音符号,因为没有变音符号的名字对我来说很好.
但是,再次:
我发誓它是相同的代码,因为我复制了我的.exe文件.
调试器说在创建文件夹之前问题已经存在于我的字符串变量中.我不明白,在这种情况下环境如何影响我的变量.
会很高兴解释:-)
我正在使用字典,我需要存储近13 000 000个密钥.不幸的是,在添加11 950 000个密钥之后,我得到了一个例外"系统内存不足".有这个问题的解决方案吗?我将需要我的程序在比未来实际上更少的可用计算机上运行.
我需要那么多密钥,因为我需要存储对 - 序列名称和序列长度,它用于解决生物信息学相关的问题.
任何帮助将不胜感激.
我试图绘制这样的简单图片,使用3个值 - 从文本文件加载xyz.

现在我需要X轴从最大数字到最低数字(现在是右边的最大数字,我需要它们在左边),所以两个零点在同一个角落相遇.我正在使用这个简单的代码:
xyz <- read.table("excel")
scatterplot3d(xyz,xlim = c(0, 100000))
xyz
Run Code Online (Sandbox Code Playgroud)
我试过"转"没有成功.图片看起来总是一样的.将非常感谢帮助.
存储在名为"excel"的文件中的示例数据:
8884 20964 2
8928 5 1
9033 6 2
9261 61307 1
9435 64914 3
9605 5 2
9626 7 3
9718 5 3
10117 48941 7
10599 399 9
20834 5802 10
21337 3 8
21479 556 8
Run Code Online (Sandbox Code Playgroud)
我希望我的0,0,0点位于右下角.