我使用wget下载了一些文件,文件格式如下:
test.zip?AWSAccesskeyId=XXXXXXX&Expires=00000000&Signature=ZZZZZZZZZZ
Run Code Online (Sandbox Code Playgroud)
有没有办法,通过删除URL参数正确重命名这些文件.也有任何方法,下载这样的文件,具有正确的名称(没有URL参数)wget
.
我尝试使用mmv
以下命令:
mmv "*.zip*" "#1.zip"
Run Code Online (Sandbox Code Playgroud)
但我找不到任何安装方法mmv
.我正在使用CentOS 6.所以,请以任何方式提出建议,除此之外.
假设我有一个字符串:
x=file.tar.sh
Run Code Online (Sandbox Code Playgroud)
我知道除了最后的n个字符之外如何删除所有内容.像这样(除去最后3个字符的所有内容:
${x: -3}
Run Code Online (Sandbox Code Playgroud)
但这对于具有不同后缀长度的文件不起作用.(len .tar!= len .sh)
我会通过删除所有内容直到最后一个点来解决这个问题.我试过这个:
${x##.}
Run Code Online (Sandbox Code Playgroud)
这将删除最长的匹配,直到"." 但不知何故,它只是返回完整的字符串而不删除任何东西?
我是mongodb的新手.我想在最近几小时从我的数据库中导出一些数据.所以,我认为我需要编写mongoexport命令并在--query
选项中包含日期范围来执行此操作.
我写这样的bash文件并尝试运行它:
#!/bin/bash
mongoexport --host localhost:27017 --db copy --collection txt --csv --fields x1,x2,x3...,date --query '{ "date" : {$gt:new Date(new Date() - 1000*60*60*3)} }' --out home/data.csv
Run Code Online (Sandbox Code Playgroud)
但我得到的结果是:
connected to: localhost:27017
assertion: 16619 code FailedToParse: FailedToParse: Expecting '}' or ',': offset:25 of:{ "date" : {$gt:new Date(new Date() - 1000*60*60*3)} }
Run Code Online (Sandbox Code Playgroud)
它看到连接到localhost但无法输出数据.如果我删除--query
选项,这可以成功运行并获取整个数据,但我必须要求查询在最近3小时内对数据进行子集化.
任何想法和帮助将受到高度赞赏.谢谢你和Best.
以下代码在服务中拍摄背景图片.它适用于棒棒糖下面的所有版本,但在运行时例外takePicture(null,null,mcall)
.有任何想法吗..?
public void takePictures(final int delay)
{
final Camera.PictureCallback mCall = new Camera.PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
Log.e(TAG, "Picture taken, saving....");
Uri uriTarget = getContentResolver().insert//(Media.EXTERNAL_CONTENT_URI, image);
(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new ContentValues());
OutputStream imageFileOS;
try {
imageFileOS = getContentResolver().openOutputStream(uriTarget);
imageFileOS.write(data);
imageFileOS.flush();
imageFileOS.close();
Log.e("Image saved: ", uriTarget.toString());
savePictures(getRealPathFromURI(uriTarget.toString()));
mCamera.stopPreview();
mCamera.release();
mCamera = null;
} catch (FileNotFoundException e) {
e.printStackTrace();
Log.e("Image not saved: ", e.toString());
} catch (IOException e) {
Log.e("Image not saved:2 ", e.toString());
e.printStackTrace();
}
} …
Run Code Online (Sandbox Code Playgroud) 我有一个包含命令行参数的文件,我想传递给另一个脚本.
但是这个文件包含诸如的元素"param 1" param2 param3
.
让我们用参数test.tmp
和脚本文件调用该文件script.sh
.
如果我做:
script.sh -p `cat test.tmp` -other_params 1 2 3
Run Code Online (Sandbox Code Playgroud)
在script.sh
之后接受p
:
"param
1"
param2
param3
但我想:
param 1
param2
param3
任何的想法?
精度小:假设script.sh
不可修改.解决方案必须在shell中进行.
我有一个要匹配的文件,如下所示:
...
new VideoInfo(6, VideoType.Flash, 270, false, AudioType.Mp3, 64, AdaptiveType.None),
new VideoInfo(13, VideoType.Mobile, 0, false, AudioType.Aac, 0, AdaptiveType.None),
new VideoInfo(17, VideoType.Mobile, 144, false, AudioType.Aac, 24, AdaptiveType.None),
... [a few hundred more entries like these]
Run Code Online (Sandbox Code Playgroud)
我有以下正则表达式模式来匹配第一个数字:
grep "new VideoInfo(.*," VideoInfo.cs
Run Code Online (Sandbox Code Playgroud)
问题是,grep 发出匹配的整行,而不仅仅是6 13 17 ...
.
我怎样才能让它只回显匹配的结果?
编辑:我在每new VideoInfo ...
行前面都有尾随空格。
我想更改一个文本文件,以便将任何以“Length:”开头的行附加到前一行。
我知道这sed '/\nLength:/ Length:/'
是行不通的,因为它sed
是基于行的。
谷歌搜索“如何匹配 sed 中的换行符”确实找到了一种复杂的 sed 方法,用于将模式连接到下一行,但我不知道如何调整它。
帮助将不胜感激。
我正在做这样的事情:
#!/usr/bin/expect -f
if {$out != ""} {
send_user $out
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用.错误信息:
can't read "out": no such variable
while executing
"if {$out != ""} {
send_user $out
}"
(file "./test" line 3)
Run Code Online (Sandbox Code Playgroud) 我正在编写一个shell脚本,其中我需要当前的操作系统名称以使其通用.喜欢:
if [ $Operating_System == "CentOS" ]
then
echo "CentOS";
# Do this
elif [ $Operating_System == "Ubuntu" ]
then
echo "Ubuntu";
# Do that
else
echo "Unsupported Operating System";
fi
Run Code Online (Sandbox Code Playgroud)
怎么可能?在lsb_release -a
命令或其他东西上应用正则表达式?
谢谢..
我想做一些像这些语句中的任何一个,这可能像bash,但收到错误:
if ! prog ...
....
Run Code Online (Sandbox Code Playgroud)
错误: fish: Unknown command '! prog ...'
if test ! prog ...
....
Run Code Online (Sandbox Code Playgroud)
错误: test: Expected a combining operator like '-a' at index 2