小编phe*_*phe的帖子

如何使用 awk 跳过行

我有一个这样的命令:

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)

bash awk

8
推荐指数
2
解决办法
9815
查看次数

awk,tail,sed或其他 - 对于大文件哪一个更快?

我有大日志文件的脚本.我可以检查所有行,并用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)

linux bash shell awk sed

6
推荐指数
1
解决办法
4541
查看次数

Datatable.merge喜欢加入

我有两个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)

但得到这样的输出:

在此输入图像描述

我怎么能这样合并?

在此输入图像描述

c# datatable

3
推荐指数
1
解决办法
1149
查看次数

如何在try-catch中使用超时?

我有像这样的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 Timeoutoledbconnection,但不工作.

我需要尝试几秒钟,如果有任何问题,需要去抓.

我怎样才能做到这一点?

c# asp.net oledbconnection try-catch

2
推荐指数
2
解决办法
8238
查看次数

如何比较不同的日期值

我的数据库上有日期列,如下所示:

201411241440
Run Code Online (Sandbox Code Playgroud)

年月日时分

我需要将它与现在进行比较,如果它超过1天,做一些事情,否则做点什么.

我想,我可以按照常规日期格式这样做

DateTime isold = DateTime.Today.AddDays(-1)
Run Code Online (Sandbox Code Playgroud)

并比较.

如何使用我的日期格式执行此操作?我该如何比较日期值?

c# string datetime

1
推荐指数
1
解决办法
83
查看次数

如何在同一列上转换kbyte - > gbyte所有值

我有这样的日志文件:

...
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等)?

bash awk sed

1
推荐指数
1
解决办法
53
查看次数

如何在UNIX中将当前目录添加到搜索路径?

我无法在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)

如何将当前目录添加到搜索路径?感谢您的任何帮助!

unix macos bash terminal

1
推荐指数
1
解决办法
4896
查看次数

如何从列表中排除文件

我在目录中有 ~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 find

1
推荐指数
1
解决办法
46
查看次数

如何编写新行 - Echo命令

我有一个日志文件和简单的bash脚本:

echo -e "$date $totalsize $dupsize $per" > log.txt 
Run Code Online (Sandbox Code Playgroud)

但是当我执行这个脚本时,它会写第一行log.txt并向我显示最后一个数据.

我试过了\n但是没有用.

执行此脚本时,如何写入新行?

bash echo

0
推荐指数
1
解决办法
92
查看次数

标签 统计

bash ×6

awk ×3

c# ×3

sed ×2

asp.net ×1

datatable ×1

datetime ×1

echo ×1

find ×1

linux ×1

macos ×1

oledbconnection ×1

shell ×1

string ×1

terminal ×1

try-catch ×1

unix ×1