小编exv*_*nce的帖子

使用Bash的两个列表之间的差异

好的,我的linux文件夹中有两个相关的列表:

 /tmp/oldList
 /tmp/newList
Run Code Online (Sandbox Code Playgroud)

我需要比较这些列表以查看添加了哪些行以及删除了哪些行.然后我需要遍历这些行并根据它们是否被添加或删除对它们执行操作.

我怎么在bash中这样做?

sorting bash awk grep sed

28
推荐指数
3
解决办法
3万
查看次数

bash循环跳过注释行

我正在循环文件中的行.我只需要跳过以"#"开头的行.我怎么做?

 #!/bin/sh 

 while read line; do
    if ["$line doesn't start with #"];then
     echo "line";
    fi
 done < /tmp/myfile
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

bash shell

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

在Ubuntu上查找并删除DOS行结尾

我发现我的很多文件都有DOS行结尾.在VI中它们看起来像这样:"^ M".我不想修改没有这些DOS行结尾的文件.如何使用bash脚本执行此操作?谢谢!

EV

unix bash awk grep sed

11
推荐指数
2
解决办法
1万
查看次数

ICMP(ping)请求中包含哪些数据?

我知道ICMP请求包含IP地址.客户端MAC地址是否包含在ICMP请求中?ping请求中还包含哪些其他信息(如果有)?

ping icmp

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

Bash域的IP地址的完整列表

我正在尝试为给定的域名生成所有可能的IP地址列表.我想我很接近,但不知道我错过了什么(或者是否有更好的方法).

首先,我创建一个域的变体列表,如下所示:

 webkinz.com
 www.webkinz.com
Run Code Online (Sandbox Code Playgroud)

然后我循环遍历此列表并对每个变体进行挖掘,如下所示:

 while read domain; do
    IPs=`dig $domain | grep $domain | grep -v ';' | awk '{ print $5 }'`;
    echo " ${IPs}" >> /tmp/IPs; #array
 done < /tmp/mylist

 sort -u /tmp/IPs > /tmp/TheIPs; #remove duplicates
 cat /tmp/TheIPs| tr -d "\n" > /tmp/IPs  #remove new lines (making it 1 long line)
Run Code Online (Sandbox Code Playgroud)

我的IP文件如下所示:

  66.48.69.100 www.webkinz.com.edgesuite.net.a1339.g.akamai.net.
Run Code Online (Sandbox Code Playgroud)

只有3个问题.:-(

  1. 当我只期待ip地址时,Dig返回域名.
  2. 我的脚本如何删除域之间的空格.
  3. dig www.webkinz.com缺少部分IP地址.

那么,我该怎么做呢?我是否以某种方式弄清楚dig是否返回了另一个域而不是ip地址并在该域上运行dig?我是否只是忽略从dig返回的域名,并确定IP地址是否足够?我希望抓住每个可以解析到域名的IP地址.我认为不应该这么难.有任何想法吗?

bash awk grep sed

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

Bash:用逗号分隔特殊字符

我有一个逗号分隔的列表,如此...

 00:00:00:00:00:00,Bob's Laptop,11111111111111111
 00:00:00:00:00:00,Mom & Dad's Computer,22222222222222222
 00:00:00:00:00:00,Kitchen,33333333333333333
Run Code Online (Sandbox Code Playgroud)

我正在尝试遍历这些行并使用每行中的3列填充变量.当数据没有空格,&符号或撇号时,我的脚本可以正常工作.当它确实有那些然后它不能正常工作.这是我的脚本:

 for line in $(cat list) 
 do 
    arr=(`echo $line | tr "," "\n"`)
    echo "Field1: ${arr[0]}"    
    echo "Field2: ${arr[1]}"
    echo "Field3: ${arr[2]}"
 done
Run Code Online (Sandbox Code Playgroud)

如果你们其中一个bash大师可以指出我如何让​​这个脚本与我的列表一起工作,我将非常感激!

EV

bash

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

从Windows服务获取用户根目录

我有一个用C#编写的Windows服务.我需要在每个用户目录中添加一个文件.我怎样才能找到入路?我意识到这真的很愚蠢,但这正是我目前正在做的事情:

  if (Directory.Exists("C:\\Users"))
  {
    path = "C:\\Users";
  }
  else if (Directory.Exists("C:\\Documents and Settings"))
  {
    path = "C:\\Documents and Settings";
  }
Run Code Online (Sandbox Code Playgroud)

我查看了特殊文件夹:http://msdn.microsoft.com/en-us/library/system.environment.specialfolder.aspx

他们似乎没有回报我需要的东西.例如,ApplicationData正在返回System32目录的路径.我认为这是因为它作为Windows服务运行.我目前使用的代码适用于我所做的少数测试.看起来应该有更智能(防错)的方式来获得这条路径.

另一个想法......也许有一个注册表项会给我我想要的东西?嗯

.net c# windows

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

如何使用域列表作为输入更新配置文件?

我有两个文件:domainList和config.cnf.domainList文件只有一个域列表,如下所示:

facebook.com
yahoo.com
youtube.com
Run Code Online (Sandbox Code Playgroud)

config.cnf是一个配置文件,具有相同的列表,格式略有不同.我需要编写一个脚本,在更新列表时更新配置文件.每当更新第一个列表时,我都可以执行bash脚本.这是配置文件中列表的格式......

*other config options/entries*
[my_list]
WWW.1 = facebook.com
WWW.2 = yahoo.com
WWW.3 = youtube.com
EOF
Run Code Online (Sandbox Code Playgroud)

所以,如果删除yahoo并在domainList中添加ebay并运行我的酷bash脚本,我需要更新配置文件...

*other config options/entries*
[my_list]
WWW.1 = facebook.com
WWW.2 = youtube.com
WWW.3 = ebay.com
EOF
Run Code Online (Sandbox Code Playgroud)

为了使事情(稍微)复杂化,域可以具有子域和外卡(即news.google.com或*.google.com).任何关于如何实现这一点的想法将不胜感激!如何在不弄清楚数据的情况下如何做到这一点?它可能只需要清除列表并每次都重新生成它,是吧?

谢谢!

EV

bash awk sed

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

标签 统计

bash ×6

awk ×4

sed ×4

grep ×3

.net ×1

c# ×1

icmp ×1

ping ×1

shell ×1

sorting ×1

unix ×1

windows ×1