在我的shell脚本中,我尝试使用在$sourcefile中找到的术语反复搜索同一个$targetfile
My$sourcefile的格式如下:
pattern1
pattern2
etc...
我必须搜索的低效循环是:
for line in $(< $sourcefile);do
fgrep $line $targetfile | fgrep "RID" >> $outputfile
done
$(>$outputfile
完成
我知道可以通过将整个$tar
我有一个自动创建的MySQL数据库备份文件夹。它们的名称由备份的日期组成,如下所示:
2010-06-12_19-45-05.mysql.gz
2010-06-14_19-45-05.mysql.gz
2010-06-18_19-45-05.mysql.gz
2010-07-01_19-45-05.mysql.gz
获取列表中最后一个文件(即按字母顺序排在最后的文件)的文件名的方法是什么
在shell脚本中,我想做如下操作
LAST_BACKUP_FILE= ???
gunzip
这个问题可能很简单,但我找不到确切的答案
在shell脚本中,我有这样一行代码
export CFLAGS=" -w -Iinc/ -Isrc/"
我不知道-w和-I选项在这里做什么
我只知道这行包括目录inc和src
任何帮助都很好它们是编译器的参数。如果是gcc,则:
-w:禁止所有警告消息
-I:将目录目录添加到要搜索头文件的目录列表中。在标准系统包含目录之前搜索以“-I”命名的目录。如果目录目录是标准系统包含目录,则忽略该选项以确保系统目录的默认搜索顺序和系统标题的特殊处理不会失败(
其目的是在没有输入的情况下甚至不启动$foo
如果foo=“diff-xyz”,并且输入丢失或为空,则此选项非常有用。
否则,diff将输出所有“xyz”作为差值
最初的问题是“cat doesnotexist | diff-exists”输出“exists”(前缀为“>”)的内容,而我希望整个管道失败。
我目前的解决办法是:
cat doesnotexist | (read first|| exit 1; (echo "$first"; cat) | diff - exists)
,但我想要
为了寻找一种简单的随机数生成方法,我遇到了一个使用follow-snip代码的方法
echo $[ ( $RANDOM % $DIE_SIDES ) + 1 ]
$[]的用途是什么。谷歌搜索并没有透露我想要的答案。谢谢这个构造用于算术;例如,$[1+1]返回2。你也可以说$expression或expr 1+1。expr命令版本是老式的,应该可以在任何shell中使用,$[expression]$expression版本在bash中工作,但我不确定它们是否包含在POSIX中
更新:$[e
我正在制作一个shell脚本,我需要它来生成一个循环。我有一个名为Files的目录。在文件中有两个文件夹。每个文件夹包含500个文件(folder1和folder2)。我需要从folder1和folder2中获取文件名,因为我需要将folder1中的文件名与folder2连接起来。它需要对其中的每个文件执行此操作。25万次
有人知道我将如何编写循环,以便能够正确地从两个目录中获取所有名称并循环吗?类似的操作应该可以做到,假设这两个子目录分别名为dir1和dir2,此示例仅自然地回显了这些名称
#
我只是在尝试下面的代码,但它不起作用。。请建议更正此代码
echo abc.txt | while read name; do find . -name $name; done
输出成功:./rak/abc.txt
echo 'abc.txt pqr.txt' | while read name; do find . -name $name; done
输出错误:查找:0652-009缺少连接
echo "abc.txt pqr.txt" | while read name; do find
好的,我正在写一个超级酷的vbscript/HTA文件。我想做的就是
在列表框中列出计算机中的所有本地用户名(我已经可以了),然后
对于列表框中的每个用户,将他们的桌面、mydocuments、Video、pictures、music复制到我选择的目标文件夹(例如d:\backupdestination)
现在大部分脚本都在运行,我也知道我可以使用&H5&type常量访问上面提到的登录用户(即运行脚本的人)的特殊文件夹
现在我不知道其他用户配置文件在哪里,它们可能在c:\users\John(通
autoconf手册建议使用作为IF而不是IF,但没有提到m4 IF。AS_IF是否也应优先于m4_IF
手册的这一部分说要像使用一样使用,以实现它的可移植性,但手册中说要使用它来扩展所需的宏
我是否应该总是像使用一样使用?答案似乎是肯定的,但我再次看到其他宏中使用了if和m4\u if。什么时候可以不使用AS_IF?AS_IF的另一个好处是,当它展开时,分支中的宏所需的任何宏都会在测试之前展开
请参阅。我对此感到困惑,因为我没有意识到if/AS_if和m4_if之间的根本区别。当用户运行脚本时
我有一个用日语编写的自定义日期格式的字符串:2013年1.月8.日 20時19分。使用osx的date命令,我可以使用以下命令将其转换为其他格式:
timestamp="2013年1月8日 20時19分"
date -j -f "%Y年%m月%d日 %H時%M分" "$timestamp" +"%F %R"
在搜索时我找到了,但最终在gnudate上没有帮助。命令gdate-d“2013年1.月8.日 20時19分" +"%F%R“表示不理解日期格式失败。-d标志允许一些简单的格式,但是如何应
从著名的“sed one liners”中找到了下面的sed脚本来反转每行中的字符,我无法在脚本的//D中执行下面的命令
sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//'
假设初始文件有两行以say开头
apple
banana
第一个命令下达后,
/\n/!G
模式空间是
apple
banana
apple
pple
a
banana
anana
b
[每行后面都会引入一行新行。代码标记会在此处删除最后一行新行。因此不会显示该行]
我需要创建一个命令来执行:
$ php app/console cache:clear --env=prod
$ php app/console composer:update
$ php app/console doctrine:schema:drop --force
$ php app/console doctrine:schema:create
$ php app/console doctrine:fixtures:load .... yes
$ php app/console asset
在下面的列表中,我想检索以数据和用户开始的文件。还需要从子目录中检索
drwxr-x--- 2 root root 4096 Jul 26 11:59 MIS
drwxr-x--- 2 root root 4096 Jul 26 12:04 recommendations
drwxr-x--- 3 root root 4096 Sep 11 07:45 script
drwxr-x--- 2 root root 4096 Sep 11 08:40 log
-rw-r----- 1 root ro
我是许多使用超级计算集群的人中的一个。如果我在Ubuntu终端中调用qdel-all,它会杀死所有人的作业还是只杀死我的作业?默认情况下,我相信它只会删除同一用户的作业
退房
在源代码中,它在哪里说它只删除同一用户的作业?假设我们以ssh-l zurich clustername的身份登录,是否会删除zurich的所有作业或集群上的所有作业?如果qdel是由普通用户发布的,它只会删除用户拥有的作业。quote“批处理作业的所有者、批处理操作员或批处理管理员可能会删除该批处理作业。”。要删除非用户
对于同时运行多个gzip文件,有什么建议吗。
例如:
file\u a.out
归档
归档
文件输出
gzip过程
gzip-f文件\u a.out
gzip-f文件输出
gzip-f文件输出
gzip-f文件输出
和脚本一起运行,有什么建议吗
谢谢团队:)使用GNU并行
parallel -j 8 < file.txt
parallel-j8
我正在编写一个shell脚本,用于读取和报告时间戳(当前时间戳存储在$g2中)。最后,我将比较这两个时间戳
我想检查$t2是否为空-如果为空,则将其存储为$g2。
如果没有,则将$t2替换为$t1,并将新的$g2值存储为$t2
我正在尝试将其输出到sudo csv样式的文件中,但当我尝试运行此脚本时,我不断收到“未找到命令”错误。有什么建议吗
if
[[ -z "$t2" ]]
then
$t2=$g2
echo "$t1,0,0" >> just_time.
标签: Shell
fishbrace-expansion
在bash中,我可以执行以下操作
$ echo bunny{1..6}
bunny1 bunny2 bunny3 bunny4 bunny5 bunny6
有没有办法在鱼身上达到同样的效果?简单的答案是回声兔(seq 6)
更详细的回答:为了与fish用具体命令取代神奇语法的理念保持一致,我们应该寻找一个Unix命令来替代语法结构{1..6}顺序符合要求;它输出某个范围内的数字,在本例中是1到6之间的整数。fish(遗憾的是)省略了seq的帮助页面,但它是一个标准的Unix/Linux命令
一
我试图读取一个文件,每当我在该文件中得到“true”时,我就会切换该标志,但它不起作用。在while循环中,我得到了更改后的值,但一旦它退出循环,就会显示初始值。以下是脚本代码:
echo "file:"
read filename
flag=0
while read line
do
if [ $line = true ]
then
flag=1
echo "Inside loop :$flag"
break
fi
done < $file
我正在将make测试输出转储到文本文件
make test > & ~/Desktop/makeTestOutput.txt
现在,我想制作一个别名,在make测试转储完成后,我制作的下一个命令fetest应使用路径~/Desktop/makeTestOutput.txt,解释并在终端中显示可读数据
我本来想做这个maketest>&$1 | fetest$1,但这并不会将文件路径输送到fetest,别名会自动处理参数,而且仅仅使用别名是不可能做到的。您应该改用函数。查看此处了解
在*NIX系统中,您可以通过以下方式获取给定进程名称的信息:
status="$(ps aux | grep process_name | grep -v grep)"
批次中的等效物是什么
我知道批处理中的grep等价物是FNDSTR,但我如何将命令行成管道并将结果存储到变量中
for /f "delims=" %%a in ('qprocess ^| find /i "process_name"') do set "status=%%a"
这是一种方法。Tasklist可以自己进行过滤
我有一个名为“1”的文件夹,其中包含以下内容:
folder "1"
folder "a1"
file "1.txt"
file "2.txt"
folder "b2"
file "3.txt"
file "4.txt"
file "5.txt"
folder "c3"
file "6.txt"
file "7.txt"
file "8.
我正在使用以下命令:
echo psc | tmadmin
其输出如下:
SEFREEUSP00 SEFREEUSP00 julRSecur 146 xyz 0有效
seExpireUse+seExpireUse+julRSecur 2014年7月xyz 0可用
我知道它返回tuxedo环境中的服务列表
我的问题是-单个命令的作用是什么?我的意思是,使用了管道命令。第一个的输出是第二个的输入。
那么这个命令是如何单独工作的呢?tmadmin正在从stdin读取它的命令。因此,当您在字符串psc
我有一个文本文件abc.txt,它包含一些文件名
我必须编写一个shell脚本来检查abc.txt中列出的文件名是否存在于目录中
然后创建一个新文件,其中包含状态为“存在”或“不存在”的文件名。您需要类似以下内容:
while read line
do
if [[ -f $line ]]
then
echo "File $line exists"
else
echo "Creating file $line"
tou
我正试图打印一些唱片,但无法打印输出
#!/bin/bash
a='xyx_n'
b='xzx_n'
c='xkx_n'
val=(1,2,4,5)
#a=($val)
for (( i=0;i<=3;i++ ))
do
echo "$a|$b|$c|${val[$i]}" >> "/tmp/test1"
done
Output
xyx_n|xzx_n|xkx_n|1,2,4,5
xyx_n|xzx_n|xkx_n|
xyx_n|xzx_n|xkx_n
从:
第二个区别是,如果make确实创建了B,以便
更新其他内容,它会在不再更新B之后删除B
需要。因此,以前不存在的中间文件
make之后也不存在make生成将删除报告给
您可以通过打印显示要删除的文件的rm-f命令来删除
现在,一个makefile,如下所示:
$(壳牌rm-rf x D)
$(shell mkdir D)
$(shell touch D/x)
VPATH=D
全部:x;
虚假的
@回显“$@”
.中级:D/x
.冒牌货
运行:
$make
D/x
rm D/x
$ls D
我想在当前目录的所有文件中grep字符串管理器和DBA,并以
filename:Target string:count我不知道您是否在寻找一行程序,但我认为这应该提供您想要的输出
从两个文件开始:
test_file.txt:
HEre is some random text
Manager
Some stuff
Manager
Testing
This Manager did DBA
and this manager did DBA too
but these guys did not
和t
标签: Shell
add-custom-command
我想验证我的XML是否格式良好,但我的一些文件没有一个根(根据业务要求,这很好,例如,…在我的上下文中是有效的XML),xmlwf可以这样做,但如果没有一个根,它会标记出一个文件,因此我想构建一个内部使用xmlwf的自定义脚本,我的自定义脚本应该如下所示
遍历作为输入传递的文件列表(例如sample.xml或s*.xml或*.xml)
为每个文件准备一个临时文件,作为+文件内容+
并在临时文件上调用xmlwf,
有人能帮上忙吗?您可以使用cat和bash向文件的开头和结尾添加文本,以便为验证目的
我的脚本的这一部分是比较文件的每一行,以找到一个预设字符串。如果字符串在文件中不作为行存在,则应将其附加到文件末尾
STRING=foobar
cat "$FILE" | while read LINE
do
if [ "$STRING" == "$LINE" ]; then
export ISLINEINFILE="yes"
fi
done
if [ ! "$ISLINEINFILE" == yes ]; then
标签: Shell
command-line-arguments
脚本使用commad执行。/scriptname arg1 arg2
其中arg1和arg2是运行脚本时传递的整数类型
我试图控制一个现有的Midori实例,我用
midori-e全屏
它工作正常。然后命令如下
下一个
米多里背
工作正常。但是当我试着去做的时候
midori-e位置www.google.com
这给了我一个错误
**(midori:1107):警告**:意外操作“www.google.com”
我试过在URL周围加上破折号、冒号和双引号,但都会出现同样的错误
我知道我可以在命令行上传递一个URL,但这会启动一个新的Midori实例,这正是我试图避免的。感谢您的帮助
我发现另一个问题问了同样的问题
如何计算这两个日期之间的差异,并将输出作为月数计数
即
您可以尝试以下解决方案-
201609-201508=13month
测试用例-
时差的计算通常是一项复杂的任务,即使是对于单一的日历类型(也有)。许多编程语言都内置了对日期和时间操作的支持,包括计算时差。但是,不幸的是,在流行的shell中,最有用的功能是缺少此功能的命令
因此,我们应该用另一种语言编写脚本,或者做一些假设,比如一年中的天数
例如,在Perl中,任务只需四行代码即可完成:
[vipin@hadoop ~]$ cat ti
我想知道是否有一种方法可以使用srec工具系列(如srec_cat或srec_info)从给定地址的.hex文件中读取数据。我知道我可以自己解析这个文件,但肯定已经有了一个工具。有人做过类似的事情吗 今天我找到了一个解决方案,使用srec_cat只将hex文件的一部分写入二进制输出文件
srec_cat.exe my.hex -intel -crop 0x08010000 0x08010040 -offset -0x08010000 -o out.bin -binary
数据表指出,也可以将
我有一个温度数据的时间序列,如下所示:
ifile.txt
1921 25
1922 25.1
1923 24.2
1924 23.4
1925 24.4
1926 25.1
1927 23.6
1928 25.2
1929 23.9
1930 25.6
我想计算1923-1929年间的异常情况
我的算法是:
1923 24.2 - (average of the temperatures during 1923-1929)
1924 23.4 - (average o
我在一个目录中有n个zip文件。在这些zip文件中,文件名的开头有空格。我只想删除此空间而不提取zip文件
我尝试了一个shell脚本,如下所示
#!/bin/sh
for zip in *.zip
do
unzipped=unzip $zip
trimmed=echo "${unzipped}" | sed -e 's/^[ \t]*//'
#Want to zip the file here with the same name
done
需要此脚本中的帮助,或者最
我对PowerShell是一个全新的人,通过四处搜索,我没有找到任何关于它的信息。所以我会在这里问,看看是否有人知道这是可能的,以及如何做到这一点
我的文件夹里有1000个mp3文件。我想把它们分成几个子文件夹,但每个子文件夹的播放时间应该是1小时,或者至少尽可能接近1小时,最好是超过1小时,而不是少于1小时
所以我得看看mp3文件的长度,它们通常有2-4分钟长。我想先得到足够的mp3文件,这样总共有1小时的播放时间。然后将它们移动到子文件夹中,并将其命名为List*n*,其中每个子文件夹的n递
我正在从bash shell脚本运行wget,如下所示:
input=$1
#iterate input text file line by line and run following on each line:
wget -a links.log -nv --spider line_n_url
$ wget -nv --spider http://google.com 2>&1 | awk '/200 OK/{print $4}'
http://www.google.nl
我想使用bash脚本从给定的参数中删除(和)。请帮帮我。用于删除其他spl字符的Sed命令在这里不起作用您在注释中给出的Sed命令中得到了额外的空间。这会导致正则表达式只替换这些字符中的任何一个“加上一个空格”(例如,它将a.b转换为ab,但它不会只匹配没有空格的单个,因此a.b保留为a.b)
您应该使用sed的//[.()]//g'。例如:
$ echo "((ab.))(" | sed 's/[. ()]//g'
ab
请注意,这是GNUsed——其他版本的行为可能不同
还要注意,不需要在
如何删除一组双引号之间的双引号
“Test T”est”应作为“Test Test”
“Test T”est、“Test1”Test1“应以“Test Test”、“Test1 Test1”的形式获得输出您可以使用awk进行尝试:
$ awk -F", *" '{ # Set the field separator
for(i=1;i<=NF;i++){ # Loop through all
我试图了解如何使用getopts为ksh脚本配置选项,我发现了以下详细信息:
Use:用于需要参数的选项。
对于需要数字参数的选项,请使用#。
用途:?和#?用于允许参数但不需要参数的选项。
但是,是否可以声明一个不允许任何参数的选项,并添加关于该选项的文本描述?不同的getopt()方法会有所不同。有不同语言的,甚至。。。哪一个
阅读精美的文档!我相信你会在那里找到各种各样的例子,而且作为奖励,比在这里提问和等待答案更快
我想在EMR上执行一个shell脚本,加载一个tarball,解压它并在里面运行脚本。我选择此设置是为了尽可能不依赖供应商。
我的剧本是
#!/bin/sh
aws s3 cp s3://path_to_my_bucket/name_of.tar.gz .
tar -xzf name_of.tar.gz
. main_script.sh
其中,main_script.sh是tarball的一部分,还有许多其他包、脚本和配置文件
如果我在主节点上以Hadoop用户的身份运行此脚本,那么一切都会正
我需要重命名文件夹中有空间的文件egDeco/main library/file1.txt
代码:
错误:
mv:无效选项-“\”
欢迎来到Stackoverflow
第一:在使用变量时使用引号。这意味着除非在非常罕见的情况下,否则您应该始终使用$foo而不是$foo,因为如果您使用后者,则假定shell将变量中的空格解释为您很少需要的单词分隔符。尤其是在你的情况下,你不想要它
第二:CSV文件似乎包含反斜杠来引用空格。一些额外的步骤似乎增加了另一个级别的引用,因此,现在,每个原始空格都有三个反
我必须将Bugzilla帐户的用户凭证从yaml文件解析到触发Jenkins作业的shell脚本中
---
-名称:'USER_BUGZILLA'
价值来源:
secretKeyRef:
名称:“bugzilla_机器人”
键:“用户”
-名称:“密码_BUGZILLA”
价值来源:
secretKeyRef:
名称:“bugzilla_机器人”
键:“密码”假设您的yaml文件名为“foo.yaml”
read-r用户密码假设您的yaml文件名为“foo.yaml”
read-r用户密码非常
标签: Shell
jenkins-pipelinejenkins-groovy
我正在从Jenkins groovy pipeline的后台调用一个.sh。sh在putty上被处决(詹金斯奴隶)。我想将该.sh文件的输出存储到一个可以在Jenkins groovy管道中使用的变量中
我试过下面的代码,但没有用。这就是为什么我在putty上执行shell,然后存储变量:
result = sh (
script: 'shell code',
returnStdout: true).trim()
echo "Output: ${result}"
变量结果应该得到shell脚
我有一个脚本,在它的开头和结尾,有一个:
echo "start" >> log
echo "end" >> log
原因是,当脚本无法控制地失败时,我在日志文件中看不到任何行。但是,当脚本正确完成时,日志在日志中可见
有人知道为什么会这样吗?您需要将错误输出(2)指向标准标准标准输出:
echo "start" >> log 2>&1
echo "end" >> log 2>&1
因为标准的stderr是2,所以
我有一个像下面这样的文件。如您所见,花括号之间几乎没有行/内容。由于有多组打开和关闭的花括号,我想分别获取每行的花括号({和})之间的内容
示例文件:
预期结果:需要3个分开的数据块,位于花括号之间
有人能帮我吗?如果您有一系列有效的JSON对象,您可以使用jq轻松、可靠地处理它们:
给定文件.jsons:
{
"/tmp/©ƒ-4bf57ed2-velero/velero/templates/crds.yaml": [ ""
],
"/tmp/velero-4bf57ed2-
我有一组简单的emacs lisp行,用于插入我的首字母和时间/日期戳,但在某些模式下(例如python模式)已经停止工作。在这些模式下,它抛出错误comint发送字符串:Buffer*spam*没有进程,其中“spam”是我试图添加时间戳的缓冲区
lisp行是:
(取消msl insert datetime()(交互式)(插入(格式时间字符串“%Y-%m-%d%H:%m ABC:”)
(全局设置键[(控件c)(控件d)]msl插入日期时间)
这在各种模式(文本模式、lisp模式等)的缓冲区中都
在我们的csv中,名称包括年、月、日期、小时、分钟,如:abc_20200211500.csv
所以我们每次都有很多csv文件
如果我想搜索1234在2020年12月02日15:00-15:59之间的号码
awk -F"|" '{if ($3 == 1234) print $5}' abc_2020021115*.csv
那么,如果我想在同一日期,但在15:00-17:00之间写相同的数字,该怎么办
awk -F"|" '{if ($3 == 1234)
上面是json内容,基本上我需要更新startdate enddate proposeddate,我已经使用sed命令进行了更新
{
"test.yaml": "# Copyright (c) 2019-2020 .\n# All Rights Reserved.\n#\n#\n\trace1:\n - trace-id:\n - \"immm-0555555555\"\n - \"mncid-666666
如何使用sed删除文本文件中包含特定字符串的所有行?删除该行并将输出打印到标准输出:
sed '/pattern to match/d' ./infile
要直接修改文件–不适用于BSD sed,请执行以下操作:
sed -i '/pattern to match/d' ./infile
相同,但对于BSD sed(Mac OS X和FreeBSD)–不适用于GNU sed:
sed -i '' '/pattern to match/d' ./infile
要直接修改文件(并创建备份),请
我有两个文件,如下所示:
文件1:
id1
hftujdbbd
bdurijtbr
grhjend
Ghent
id2
fu Rubens
hejdnnd
bdudndn
id3
gjbfbd
vhrjend
rjndnd
.
.
.
id1
id2
文件2:
id1
hftujdbbd
bdurijtbr
grhjend
Ghent
id2
fu Rubens
hejdnnd
bdudndn
id3
gjbfbd
vhrjend
rjndnd
.
.
.
id1
id2
我需要找到