【发布时间】:2015-04-30 13:05:04
【问题描述】:
我有一个 JavaScript 文件,如下所示。
Me.dat
var fruit = [
"Apple",
"Mango",
"Orange"
];
var players = [
"Sachin",
"Dhoni",
"Kapil Dev"
];
我需要动态地将一个元素添加到这些数组中的任何一个。(实际上是在文件中)。
根据作业状态,我会插入到相应的数组中。
比如说,
addMe "Grapes" "fruits"
会创建一个文件,
var fruit = [
"Apple",
"Mango",
"Orange",
"Grapes" ---------Added newly!!!
];
var players = [
"Sachin",
"Dhoni",
"Kapil Dev"
];
所以,我必须在文件的第 5 行插入文本“Grapes”。
这就是我现在所拥有的......
我的脚本:
SEARCHTERM="fruits";
TO_BE_ADDED="Grapes";
#take the start line number and end linenumer of the array..
startlinenum=`grep -n $SEARCHTERM me.dat | cut -d ":" -f1 | head -1`;
endlinenum=`tail +$startlinenum me.dat | grep -n "]" | head -1 | cut -d ":" -f1`;
endlinenum=`expr $startlinenum + $endlinenum - 2`;
echo "\"$TO_BE_ADDED\"" > to_be_added.dat;
echo "ENd line is : ${endlinenum}";
sed "${endlinenum}r to_be_added.dat" me.dat
我得到了输出,
var fruits = [
"Apple",
"Mango",
"Orange" ------ How would I remove this Comma ? :(
"Grapes" ------ Added Correctly....
];
我在这里做对了吗?还是有更简单的方法?
请帮忙。我如何删除我在之前的 sn-p 中提到的逗号。
【问题讨论】:
-
不,你做错了。 UNIX shell 只是一个环境,可以从中调用 UNIX 工具,并使用一种语言来对这些调用进行排序。处理文本的 UNIX 工具是 awk。所以废弃所有的 shell/sed/grep 的东西,然后调用 awk,
-
@EdMorton 是的,我只是尝试了我所知道的一切。我很少得到这样的工作。而这个我有兴趣自己尝试一下..(工作满意度:))还是非常感谢。