我在找一个脚本,工具...对于linux,它可以找到所有文件和所有文件中的关键字,类似于OSX Finder (我不是在寻找具有相同Finder界面的应用程序,而只是相同的工作)
例如,如果我在OSX Finder中搜索"linux“,我会得到:
linux (directory with linux name)
linux-2.4.0 (directory with linux in name)
...
memory.h (file with linux in text)
...
command.c (file with linux in text)
...
so-08-filesy
我们的网络实验室范围从18.2.1.1到18.7.252.253,我们只想捕获版本为7.x (/etc/redhat- version )的Linux机器(我们大约有2870台机器和390台RHEL机器)。
我可以为这个任务创建bash/python/perl脚本,但是也许我们可以找到一些已经存在的工具来完成这项工作?
我不太明白下面的if-语句实际上做了什么,从条件输出可能是什么的意义上说:
if linux-command-1 | linux-command-2 | linux-command-3 > /dev/null
我的理解是:
Linux 1被执行,它的输出被管道传输到2作为输入.
Linux 2用LC1的输入执行,它的输出被管道传输到3中.
Linux 3使用LC2的输入执行,它的输出被重定向到/dev/null,基本上不会出现。
,但是实际的if语句呢?是什么让它变得真实或错误呢?
为了进一步说明,下面是一个实际命令的示例:
if ps ax | grep -v gr
我需要在以下方面得到一些帮助:
我使用linux编写发送到设备的命令脚本。我需要向设备提交grep logcat命令,然后在生成输出时迭代它的输出,并查找特定的字符串。一旦找到这个字符串,我希望我的脚本移动到下面的命令。
在伪代码中
for line in "adb shell logcat | grep TestProccess"
do
if "TestProccess test service stopped" in line:
print line
print "TestService finished \n&
当我使用grep查找我需要的文本时,它将显示包含与给定模式匹配的行。
例如,
# grep -r ".*Linux" *
path0/output.txt:I hope you enjoyed working on Linux.
path1/output1.txt:Welcome to Linux.
path2/output2.txt:I hope you will have fun with Linux.
然后,我想编辑文件path2/output2.txt,因此,我输入了vim path2/output2.txt。
但是,我不认为这是一个有效的方法。
如何在grep之后复制
我正在编写一个脚本,提示用户输入用户名。输入后,脚本使用'rwho‘命令获取登录到网络的用户列表。它应该将他们输入的文本(用户名)与rwho命令的结果交叉起来。
如果找到匹配项,则会显示一条这样的消息,如果不匹配,也会使用户意识到这一点。
以下是到目前为止的脚本和我的尝试:
#!/bin/sh
#
# User network checking script
#
# Using rwho command to get user list
OUTPUT="$(rwho)"
echo "${OUTPUT}"
# Prompt for username
e
在unix或linux中,如何根据sed、grep或awk在unix上获取目录中文件的名称?
我想我可以这样做:
for i in $(ls /tmp/files/date*); do
if [ $(cat $i | head -n 1 | grep -c "6") >= 1 ] ; then
echo $i
fi
done
我需要它来搜索某个目录中的所有文件(每个文件只有第一行),然后返回其中包含字符串的文件。
谢谢,蒂姆
我们总是可以通过使用alias命令来查看alias值。
wolf@linux:~$ alias al='grep "$1" file.txt'
wolf@linux:~$ alias al
alias al='grep "$1" file.txt'
wolf@linux:~$
不幸的是,grep不能使用别名。不知道是什么问题。如果你知道问题和解决办法,请告诉我。
wolf@linux:~$ al
random text
abc def jkl
random text
abc ghi jkl
random text
wolf@li
首先要说的是,我已经探索并尝试了其他类似问题中提出的解决办法,但到目前为止都没有奏效。我知道USB没有问题,因为它只是在同一台机器上的Windows 10中工作得很好。顺便说一句,它在MacOS10.13.6中也不起作用(这是一个2011年的MacBook Pro,内部的WiFi适配器坏了)。
lsusb
给出了以下内容: Bus 002设备006: ID148F:7601 MT7601U无线适配器公司
dmesg
在插入该设备后,就会给出:
[ 2265.257271] usb 1-1.3: new high-speed USB device number 11 using ehci-pci
在Linux中,假设挂载命令返回以下内容
/dev/sdc1 on /media/ELF (^-^)V type vfat
/dev/sdb1 on /media/PENDRIVE type vfat
我想做的就是得到我的usb磁盘的所有安装点。
我已经这样做了,使用grep和sed的组合,我可以得到以下内容:
/media/ELF (^-^)V
/media/PENDRIVE
问题是,当我在bash中做循环时,这些文本将变成3部分,而不是2部分,我的意思是:
假设我把这些文本的结果列在列表中
for list in $LIST; do
echo $list
done;
循环的结果