我正在尝试构建一个shell脚本来监视一些日志文件.我正在使用这样的命令:
tail -f /var/somelog | grep --line-buffered " some test and p l a c e h o l d e r" | cut -f 3,4,14 -d " "
Run Code Online (Sandbox Code Playgroud)
日志文件如下:
some test and p l a c e h o l d e r 3
some test and p l a c e h o l d e r 4
some test and p l a c e h o l d e r 5
some test and p l …
Run Code Online (Sandbox Code Playgroud) 在我的脚本"script.sh"中,我想将第一个和第二个参数存储到某个变量中,然后将其余参数存储到另一个单独的变量中.我必须使用什么命令来执行此任务?请注意,传递给脚本的参数数量会有所不同.
当我在控制台中运行命令时
./script.sh abc def ghi jkl mn o p qrs xxx #It can have any number of arguments
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我希望我的脚本在一个变量中存储"abc"和"def"."ghi jkl mn op qrs xxx"应存储在另一个变量中.
我有一个awk
脚本,我正在对一对文件运行.我这样称呼它:
awk -f script.awk file1 file2
script.awk看起来像这样:
BEGIN {FS=":"}
{ if( NR == 1 )
{
var=$2
FS=" "
}
else print var,"|",$0
}
Run Code Online (Sandbox Code Playgroud)
每个文件的第一行是冒号分隔的.对于每一行,我希望它返回到默认的空白文件分隔符.
这适用于第一个文件,但失败,因为在每个文件之后FS
没有重置:
,因为BEGIN块只处理一次.
tldr:有没有办法让awk处理BEGIN块一次为我传递的每个文件?
我在cygwin bash上运行它,以防万一.