我有一个在bash脚本中工作的grep命令:
if grep 'stackoverflow' outFile.txt; then
exit 1
fi
Run Code Online (Sandbox Code Playgroud)
这在我的主机上运行时工作正常.然而,当我从Jenkins构建步骤调用它时,它每次都退出0,而不是看到'stackoverflow'.出了什么问题?
我正在寻找一个命令行,可以对两个具有相同名称但在不同文件夹中的文件执行某些操作.
例如,如果
A包含的文件1.txt,2.txt,3.txt,...B包含的文件1.txt,2.txt,3.txt,...我想将两者连接起来的文件A/1.txt和B/1.txt,和A/2.txt和B/2.txt,...
我正在寻找一个shell命令来做到这一点:
if file name in A is equal the file name in B then:
cat A/1.txt B/1.txt
end if
Run Code Online (Sandbox Code Playgroud)
在文件夹中的所有文件A和B,如果只有名称匹配.
在我的脚本中,我将当前日期存储在一个变量中,但是我希望该变量提前 5 分钟存储日期。
29/10/2014-10:47:06 to 29/10/2014-10:52:06
Run Code Online (Sandbox Code Playgroud)
在 Bash 中是否有一种快速简便的方法来做到这一点?例如,如果时间是 10:59:00(识别进入下一小时),寻找一个也能正常工作的解决方案。
我找到了一些 Perl 解决方案,但对 Bash 没有任何帮助。
我希望有人可以解释一个现象.正如标题所示,我正在学习文件描述符的重定向.在此过程中,我遇到了一个关于重定向符号使用的问题,特别是在设置永久重定向时.我注意到在某些情况下,我是否使用<或似乎并不重要>.例如,使用以下脚本:
#!/bin/bash
#Setting file descriptor 3 to redirect to STDIN
exec 3<&0
#Setting STDIN to read from input file
exec 0<inputFile
while read var
do
echo "$var"
done
#Setting STDIN to read from file descriptor 3 which is redirected to the default STDIN
exec 0<&3
read -p "Enter a word:" word
echo "$word"
Run Code Online (Sandbox Code Playgroud)
令我惊讶的是,如果我使用>或<在陈述exec 3<&0或中,似乎并不重要exec 0<&3.在这些陈述中的任何一个中,似乎如果我换出重定向符号,我仍然得到完全相同的结果.对我来说,对行进行相同类型的更改似乎很明显:
exec 0<inputFile
Run Code Online (Sandbox Code Playgroud)
与
exec 0>inputFile
Run Code Online (Sandbox Code Playgroud)
不会产生相同的结果,因为将STDIN重定向到文件与将文件重定向到STDIN不同.
所以我的问题是:
<vs >:
# …Run Code Online (Sandbox Code Playgroud)我想从我的grep命令中排除一些文件,为此我使用参数:
--exclude=excluded_file.ext
Run Code Online (Sandbox Code Playgroud)
为了更容易阅读,我想使用带有排除文件的bash数组:
EXCLUDED_FILES=("excluded_file.ext")
Run Code Online (Sandbox Code Playgroud)
然后传递$ {EXCLUDED_FILES}数组grep,如:
grep -Rni "my text" --exclude=${EXCLUDED_FILES}
Run Code Online (Sandbox Code Playgroud)
我如何将数组作为参数传递给grep命令?
我是python的新手,我想知道如何从列表中删除项目.说我有这个清单:
a=[(102,12,0),(123,12,0),(124,12,1)]
Run Code Online (Sandbox Code Playgroud)
我想删除最后有0的项目,所以我的列表最终会像:
a = [(124,12,1)]
Run Code Online (Sandbox Code Playgroud) 我是iOS编程的新手.
我正在关注一本指南,这本书正是在意大利语的iOS上.对于第一个应用程序,我必须ViewController.m像这样修改:
#import "ViewController.h"
@implementation ViewController
- (void)didReceiveMemoryWarning{
[super didReceiveMemoryWarning];
// Release Any chached data, images, etc that aren't in use.
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)datiDettaglioChiudi:(datiDettaglio *)controller{
//altre operazioni possibii dopo la dismissModal
NSLog(@"... di ritorno dal DismissModal...");
[controller dismissViewControllerAnimated:YES completion:nil];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"dettaglio"]){
datiDettaglio *mioController1 = segue.destinationViewController;
[mioController1 setDelegate:self];
//aggiunta di una UILabel - qui è …Run Code Online (Sandbox Code Playgroud) 我有一个文件夹,其中包含子文件夹和具有只读属性(文件和文件夹)的文件.我想删除带有子文件夹和文件的文件夹.
我写了这段代码:
static void Main(string[] args)
{
DirectoryInfo mm = new DirectoryInfo(@"c:\ex");
string aa = Convert.ToString(mm);
string[] allFileNames =
System.IO.Directory.GetFiles(aa,
"*.*",
System.IO.SearchOption.AllDirectories);
string[] alldirNames =
System.IO.Directory.GetDirectories(aa,
"*",
System.IO.SearchOption.AllDirectories);
foreach (string filename in allFileNames)
{
FileAttributes attr = File.GetAttributes(filename);
File.SetAttributes(filename, attr & ~FileAttributes.ReadOnly);
}
foreach (string dirname in alldirNames)
{
FileAttributes attr = File.GetAttributes(dirname);
File.SetAttributes(dirname, attr & ~FileAttributes.ReadOnly);
Directory.Delete(dirname , true);
}
FileInfo[] list = mm.GetFiles();
foreach (FileInfo k in list)
{
k.Delete();
}
mm.Delete();
Console.ReadKey();
}
Run Code Online (Sandbox Code Playgroud)
现在的问题是每当我运行程序时它会给我以下错误:
找不到路径'c:\ ex\xx\bb'的一部分.
这个错误是什么意思?
我正在尝试做一些相当简单的事情,而我只是做得很短.这是我正在尝试使用的示例变量:
20,80,443,53
Run Code Online (Sandbox Code Playgroud)
该变量只是由逗号分隔的一串端口.我需要把它们放到一个数组中.
我可以从bash为某个变量分配一个路径:
VAR1=/home/alvas/something
Run Code Online (Sandbox Code Playgroud)
我可以自动找到它:
$ cd
$ locate -b "something" .
/home/alvas/something
/home/alvas/someotherpath/something
Run Code Online (Sandbox Code Playgroud)
但是如何将locate 的第一个结果作为变量的值分配?
我尝试了以下但它不起作用:
alvas@ubi:~$ locate -b 'mosesdecoder' . | VAR1=
alvas@ubi:~$ VAR1
VAR1: command not found
Run Code Online (Sandbox Code Playgroud)