在Unix系统上查找数据的佳工具和技巧
作者:网络转载 发布时间:[ 2016/3/1 11:06:56 ] 推荐标签:操作系统
当你不知道的时候
如果你要查找一个已知位置的文本,例如当 Perl 告诉你脚本执行到第 73 行出现了问题,或者你正在处理文件的第 1892 行,你可以使用sed 来显示特定的行(我只是不喜欢数到 1892 行)。而且额外花一点点力气,你可以只显示这一行。
错误信息可能像这个样子:
“syntax error line 73 near ”} else“ ”
你可以使用一个sed命令来显示出问题的这行:
$ sed -n 73p showvars
else
好了,是这行,但是我们也没有比之前多知道些什么。通过显示前面几行可以增加一点上下文信息,我们可以定位错误。这里有一个类似的命令可以显示这行和之前的十行:
sed -n 63,73p showvars
if $password eq "a_secret";
{
foreach $var (sort(keys(%ENV))) {
$val = $ENV{$var};
$val =~ s|n|n|g;
$val =~ s|"|"|g;
print '${var}="${val}"n'
};
}
else
哎呦!这看上去是某些人在写 if 语句时出了问题!我们可以很容易地修复它。
你还可以使用 sed 命令来强调包含特定内容的行。在下面的命令里,我们增加了一个 “箭头标记” 来强调每一个包含 foreach 命令的行:
$ sed '/print/{b label1; {:label1 ; s/^/# / ; s/$/ <===/ ;} }' showvars
#!/bin/bash
if $password eq "a_secret";
{
foreach $var (sort(keys(%ENV))) {
$val = $ENV{$var};
$val =~ s|n|n|g;
$val =~ s|"|"|g;
# print '${var}="${val}"n' <===
};
}
else
你可以使用类似的命令注释掉你的 print 命令:
$ sed '/print/{b label1; {:label1 ; s/^/# / ; s/$/ <===/ ;} }' showvars
#!/bin/bash
if $password eq "a_secret";
{
foreach $var (sort(keys(%ENV))) {
$val = $ENV{$var};
$val =~ s|n|n|g;
$val =~ s|"|"|g;
# print '${var}="${val}"n' <===
};
}
else
大海捞针很难,其实地毯上找针也都不容易。但是通过使用一些常见 Unix 命令的变形,可以很容易找到你要找的东西,甚至当你并不知道要找什么的时候。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
16条实用的Linux/Unix 磁带管理命令Unix/Linux中的read和write函数在UNIX系统下使用IO库程序UNIX家族小史Linux/Unix系统下的网络配置Unix哲学:Elixir将会替代Go10分钟教你学会Linux/Unix下的vi文本编辑器Unix/Linux系统安全检查工具Lynis 2.1.0发布Unix/Linux之命令备忘录如何通过LoadRunner监控Linux和Unix操作系统的资源状况20个Unix/Linux命令技巧UNIX标准化及实现之功能测试宏一些实用但不为人知的Unix命令如何喜欢上Unix?Unix/Linux中Cron的用法关于UNIX功能测试宏
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11热门文章
常见的移动App Bug??崩溃的测试用例设计如何用Jmeter做压力测试QC使用说明APP压力测试入门教程移动app测试中的主要问题jenkins+testng+ant+webdriver持续集成测试使用JMeter进行HTTP负载测试Selenium 2.0 WebDriver 使用指南