function deleteNews($selected) {
$file = file_get_contents('news.json', true);
$data=json_decode($file,true);
unset($file);
foreach($selected as $index){
unset($data[$index]);
}
$result=json_encode($data);
file_put_contents('news.json', $result);
echo $result;
unset($result);
$url="./deleteNews.php";
//redirect($url);
}
Run Code Online (Sandbox Code Playgroud)
上述函数应该从JSON中删除条目,如:
[
{
"dummy":"dummy",
"dummy1":"dumy"
},
{
"dummy":"dummy1",
"dummy1":"dummy"
}
]
Run Code Online (Sandbox Code Playgroud)
但最后该函数在JSON中插入数字索引,这是不可取的.
结果是这样的
[
"0":
{
"dummy":"dummy",
"dummy1":"dumy"
},
"1":
{
"dummy":"dummy1",
"dummy1":"dummy"
}
]
Run Code Online (Sandbox Code Playgroud)
如何从中获取原始JSON格式?我不想要0 1 2索引部分.
NB:就是foreach这样做.如果没有foreach,则按预期创建JSON.
我想打印两列等于变量的行,例如输入:
2607s1 NC_000067.6 95.92 49 1 1 3 50 1e-14 84.2
2607s1 NC_000067.6 97.73 44 1 0 7 50 4e-14 84.2
2607s1 NC_000067.6 97.67 43 1 0 8 50 1e-13 75.0
Run Code Online (Sandbox Code Playgroud)
和第一列和最后一列的变量:
a="2607s1"; b="84.2"
Run Code Online (Sandbox Code Playgroud)
并使用awk命令,输出:
2607s1 NC_000067.6 95.92 49 1 1 3 50 1e-14 84.2
2607s1 NC_000067.6 97.73 44 1 0 7 50 4e-14 84.2
Run Code Online (Sandbox Code Playgroud)
我尝试了以下但不工作:
awk -v '$1==$a' && '$10==$b' test_file
cat test_file|awk '$1=="($a)" && $10=="($b)"'
cat test_file|awk '$1==($a) && $10==($b)'
cat test_file|awk '$1=="$a" && $10=="$b"'
Run Code Online (Sandbox Code Playgroud)
而且,我在一个while循环中运行它,所以$a并且 …
我想用f和v作变量.f*.mkv和v*.mp3
for f in *.mkv v in *.mp3; do
ffmpeg -i "$f" -i "$v" -vcodec copy merge_"$f"
done
Run Code Online (Sandbox Code Playgroud)
我不知道如何正确地做到这一点.我仍然是bash shell脚本的新手.
我希望有一个人可以帮助我.
我是shell脚本的初学者,需要一个脚本来检查一个进程的状态,并在输出时"输出","关闭时"输出"不运行".
我尝试了下面的一个,但它不起作用:
if [ -s `/opt/reds/recycle.sh status | grep "pid"` ];
then
echo "running"
else
echo "not running"
fi
Run Code Online (Sandbox Code Playgroud)
有人可以帮帮我吗?
如何grep -o在一行中打印输出?我正在尝试打印:
$ echo "Hello Guys!" |grep -E '[A-Z]'
Hello Guys!
$ echo "Hello Guys!" |grep -Eo '[A-Z]' <----Multiple lines
H
G
$ echo "Hello Guys!" |grep -Eo '[A-Z]'
Run Code Online (Sandbox Code Playgroud)
期望的输出:
HG
Run Code Online (Sandbox Code Playgroud)
我可以使用以下命令廉价地实现它,但问题是字母数(在这种情况下为 3)可能是动态的。所以不能使用这种方法。
echo "HEllo Guys!" |grep -oE '[A-Z]' |xargs -L3 |sed 's/ //g'
HEG
Run Code Online (Sandbox Code Playgroud) 我有一堆像这样的数组:
array1=("A" "B")
array2=("C" "D")
array3=("E" "F" "G")
Run Code Online (Sandbox Code Playgroud)
我想循环遍历数组,以及每个数组中的元素.以下是我试图完成此任务的方法:
for i in `seq 1 2`
do
for elm in ${array${i}[@]}
do
echo "the element in array$i is $elm"
done
done
Run Code Online (Sandbox Code Playgroud)
但是,这给了我:
./new_test.sh: line 6: ${array${i}[@]}: bad substitution
Run Code Online (Sandbox Code Playgroud)
我有点知道我正在做的事情是错的,因为我不想让第一个$评估${i}它的内部.
我该如何防止这种情况?
请考虑以下脚本:
#! /bin/bash -e
echo {foo,bar}
EX={foo,bar}
echo ${EX}
Run Code Online (Sandbox Code Playgroud)
该脚本的输出是:
foo bar
{foo,bar}
Run Code Online (Sandbox Code Playgroud)
我echo想要执行大括号扩展的命令${EX}.因此,我希望看到一个输出
foo bar
foo bar
Run Code Online (Sandbox Code Playgroud)
我想创建一个脚本,用户可以在其中提供带有大括号的路径,其中复制了每个扩展版本.
像这样的东西:
#! /bin/bash -e
$SOURCES=$1
$TARGET=$2
cp -r ${SOURCES} ${TARGET}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我正在考虑在Google Cardboard中播放视频.我已经创建了2个纸板视图,并且能够在这些视图中显示2个图像.
但我无法在这些视图中播放视频.此外,我没有任何例外.
这里的纸板样本显示了使用open-gl的寻宝游戏,但与播放视频无关.
任何帮助,将不胜感激.
我有一个这样的课:
class A{
private:
init(const std::string& s=""){/*do something*/}
public:
A(){init();}
A(const A&){init();}
A(const std::string& s){init(s);}
};
Run Code Online (Sandbox Code Playgroud)
它是否涵盖了可能被称为构造函数的所有形式?
我要做的是,任何对象创建必须首先调用该init()函数,即我需要定义可以隐式或显式调用的所有构造函数.
我有这样一个bash脚本.我想将目录下的gzip所有.ppm文件转到另一个目录.出于这个原因,我写了这样一个bash脚本:
cd /export/students/sait/12-may
for next_file in $(find . -type f ! -name *.ppm )
do
/bin/gzip -f -c $next_file > /export/students/sait/12-may-yedek/$next_file.gz
done
Run Code Online (Sandbox Code Playgroud)
当我执行这个脚本时,我得到这样的错误:
/usr/bin/find: Argument list too long
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?