我尝试从表单的每个file.dat中获取第一个数字:
5.01 1 56.413481000 -0.00063400 0.00095770
5.01 2 61.193808800 0.00102170 0.00078280
5.01 3 65.974136600 -0.00108170 0.00102620
5.01 4 70.754464300 0.00082490 0.00103630
然后使用此编号(5.01
)作为.png文件的标题。
我使用了一个bash脚本,我知道这里的一个问题中找到的line=$(head -n 1 $f)
命令,但这就是文件$f
的第一行。
在这种情况下,也会保存行中的空格,并且.png文件标题变为:
plot 5.01 1 56.413481000 -0.00063400 0.00095770.png
有一些方法只能拍摄5.01,并为情节设定一个修剪标题?
感谢所有人。
答案 0 :(得分:3)
我可能只是用new SshConnection(c.Resolve<IDependency>())
:
perl
无论如何都是这样的。
应删除:
VAL=$( echo "$line" | perl -pe 's/^[^\d]+//g;s/[^\d\.].*$//' )
到行尾。 答案 1 :(得分:3)
或者使用grep:
grep -o "[0-9]*\.[0-9]*" file.dat | head -1
编辑: 没有头-1的测试用于在线输入:
echo " 5.01 2 61.193808800 0.00102170 0.00078280" | grep -o "[0-9]*\.[0-9]*"
5.01
61.193808800
0.00102170
0.00078280
使用head -1将返回第一行的第一个匹配项。
如果您知道匹配将在第一行,那么我们可以忽略第一行不正确的文件(并且不要查看完整文件): 做一个双头怪物:
head -1 | grep -o "[0-9]*\.[0-9]*" file.dat | head -1
答案 2 :(得分:2)
要提取第一个字段,假设它们是制表符分隔的:
vector
或者,如果它们是空格分隔的:
val=$(head -n 1 $f | cut -f 1)
答案 3 :(得分:1)
或者你可以避免调用任何额外的进程并使用
在bash
shell中保留所有数据操作
while read realNum restOfLine ;
break
done < $f
echo $realNum
这会抓住第一个“单词”并将剩余的单词放入“restOfLine”。
break
确保您只读取文件的第一行。
IHTH