我正在尝试提取平面文件最后一行中括号之间的值,例如“last_line(4)”。这是最后一行,我想提取4并将其存储在变量中。我使用tail
命令提取了最后一行,但现在我无法提取括号之间的值。
请帮助。
答案 0 :(得分:1)
使用awk:
path = "E:/plot/2"
fileList = list.files(path=path,pattern="\\.teTestResult",full.names=T)
myfiles = lapply(fileList, read.csv,header=TRUE,sep=";" )
a <- data.frame(myfiles)
attach(a)
boxplot(Return~gama)
boxplot(Return~theta)
boxplot(Return~detectionsLimit)
boxplot(Return~NSMOOTH)
boxplot(Return~NREF)
boxplot(Return~NOBS)
boxplot(Return.1~gama.1)
boxplot(Return.1~theta.1)
boxplot(Return.1~detectionsLimit.1)
boxplot(Return.1~NSMOOTH.1)
boxplot(Return.1~NREF.1)
boxplot(Return.1~NOBS.1)
...
boxplot(Return.9~NOBS.9)
答案 1 :(得分:1)
l=$(tail -n1 filename); tmp=${l##*(}; tmp=${tmp%)*}; printf "tmp: %s\n" $tmp
<强>输出强>
tmp:4
以脚本格式编写,您正在使用子字符串删除来修剪第一个(
以及最后一行)
之后的所有内容,只留下4
:
l=$(tail -n1 filename) ## get the last line
tmp=${l##*(} ## trim to ( from left
tmp=${tmp%)*} ## trim to ) from right
printf "tmp: %s\n" $tmp
答案 2 :(得分:0)
sed的:
sed -n '${s/.*(//;s/).*//;p}' file
答案 3 :(得分:0)
你可以使用这个脚本。
在这个脚本中,我将最后一行保存在tmp文件中,最后将其删除。 方括号()之间的数字是变量WORD
#!/bin/ksh
if test "${DEBUG}" = "Y"
then
set -vx
fi
tail -1 input>>tmp
WORD=`sed -n 's/.*(//;s/).*//;p' tmp`
echo $WORD
rm tmp