我有一个这样的命令:
tac $log | awk -v pattern="test" '$9 ~ pattern {print; exit}'
Run Code Online (Sandbox Code Playgroud)
$9
它向我显示了包含文本的最后一行test
。
像这样:
Thu Mar 26 20:21:38 2015 1 10.8.0.22 94 /home/xxxyyy/zzz_test_223123.txt b _ o r spy ftp 0 * c
Thu Mar 26 20:21:39 2015 1 10.8.0.22 94 /home/SAVED/zzz_test_123123.txt b _ o r spy ftp 0 * c
Thu Mar 26 20:21:40 2015 1 10.8.0.22 94 /home/xxxyyy/zzz_test_123123.txt b _ o r spy ftp 0 * c
Thu Mar 26 20:21:41 2015 1 10.8.0.22 94 /home/SAVED/zzz_test_123124.txt …
Run Code Online (Sandbox Code Playgroud) 我有大日志文件的脚本.我可以检查所有行,并用tail
和做一些事情awk
.
尾巴:
tail -n +$startline $LOG
Run Code Online (Sandbox Code Playgroud)
AWK:
awk 'NR>='"$startline"' {print}' $LOG
Run Code Online (Sandbox Code Playgroud)
并检查时间,尾部工作6分39秒,awk工作6分42秒.所以两个命令做同样的事情/同一时间.
我不知道怎么做sed.Sed可以比tail和awk更快吗?或者也许是其他命令.
第二个问题,我使用$startline
和每次继续从最后一行继续.例如:
我使用脚本行:
10:00AM -> ./script -> $startline=1 and do something -> write line number to save file(for ex. 25),
10:05AM -> ./script -> $startline=26(read save file +1) and do something -> write line number save file(55),
10:10AM -> ./script -> $startline=56(read save file +1) and do something ....
Run Code Online (Sandbox Code Playgroud)
但是当脚本运行时,检查所有行,何时看到$startline
,做某事.由于文件庞大,它有点慢.
对它的任何建议都会更快?
脚本示例:
lastline=$(tail -1 "line.save")
startline=$(($lastline + 1))
tail -n …
Run Code Online (Sandbox Code Playgroud) 我有两个DataTables
这样的:
DataTable dt1 = new DataTable();
DataTable dt2 = new DataTable();
Run Code Online (Sandbox Code Playgroud)
dt1
:
dt2
:
我需要合并两个DataTables
并设置为GridView
这样:
dt1.Merge(dt2, true, MissingSchemaAction.Add);
GridView1.DataSource = dt1;
GridView1.DataBind();
Run Code Online (Sandbox Code Playgroud)
但得到这样的输出:
我怎么能这样合并?
我有像这样的oledbconnection try-catch:
try
{
OleDbConnection Connection;
using (Connection = new OleDbConnection("Provider=MSDAORA.1;Data Source=DATABASE:1521/orcl//orcl1;Persist Security Info=True;Password=PASS;User ID=USER"))
{
Connection.Open();
v1 = 1;
Connection.Close();
}
}
catch (Exception)
{
v1 = 0;
}
Run Code Online (Sandbox Code Playgroud)
当我无法连接数据库时,请尝试捕获并返回v1 = 0
.它正在工作但是当连接等待这么多时(例如30-40秒),尝试连接和页面等待这么多.
我试过Connect Timeout
了oledbconnection
,但不工作.
我需要尝试几秒钟,如果有任何问题,需要去抓.
我怎样才能做到这一点?
我的数据库上有日期列,如下所示:
201411241440
Run Code Online (Sandbox Code Playgroud)
年月日时分
我需要将它与现在进行比较,如果它超过1天,做一些事情,否则做点什么.
我想,我可以按照常规日期格式这样做
DateTime isold = DateTime.Today.AddDays(-1)
Run Code Online (Sandbox Code Playgroud)
并比较.
如何使用我的日期格式执行此操作?我该如何比较日期值?
我有这样的日志文件:
...
h,7,0,0,0
h,8,0,0,0
h,9,1420617572,113390,9777
h,10,1420621172,546702,26577
h,11,1420621754,2746,2786
h,12,0,0,0
...
Run Code Online (Sandbox Code Playgroud)
最后2列kbyte值.我需要更新所有最后2列的值kB到gB.
有关转换和列号更新的任何建议(awk,sed等)?
我无法在UNIX bash中修复命令未找到的错误.我需要将当前目录添加到我的搜索路径.但是,我在谷歌搜索,但我找不到任何告诉我直接解决方案(因为我在初学者级别,很难理解)
当我写到终端时pwd
,它说
/Users/macbook
Run Code Online (Sandbox Code Playgroud)
当我写作时echo $PATH
,它说
/Users/macbook/opt/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/git/bin:/opt/X11/bin:/Users/macbook/OPT/BIN:/Users/macbook/opt/bin
Run Code Online (Sandbox Code Playgroud)
如何将当前目录添加到搜索路径?感谢您的任何帮助!
我在目录中有 ~100k 文件。我需要删除其中一些文件,不包括(15k 不同模式)模式列表:
Directory: /20210111/
Example files:
/20210111/xxx_yyy_zzz.zip
/20210111/aaa_bbb_ccc.zip
/20210111/ddd_eee_fff.zip
...
Exclude.list
ddd
aaa
...
Run Code Online (Sandbox Code Playgroud)
我试过找到:
find /20210111/ -type f -iname "*.zip" ! -iname "*$(cat Exclude.list)*" -exec ...
Run Code Online (Sandbox Code Playgroud)
获取错误:参数太长。因为 exclude.list 有很多行。
我怎样才能做到这一点?
我有一个日志文件和简单的bash脚本:
echo -e "$date $totalsize $dupsize $per" > log.txt
Run Code Online (Sandbox Code Playgroud)
但是当我执行这个脚本时,它会写第一行log.txt并向我显示最后一个数据.
我试过了\n但是没有用.
执行此脚本时,如何写入新行?