我是shell脚本世界的新手。我已对此做了一些研究,但到目前为止似乎没有起作用。
我想要做的是我有两个txt文件。我想从文件B中的文件A中搜索所有字符串,并显示文件B中包含字符串的所有行。
到目前为止,我只有这个(请不要笑)......
#!bin/sh
for LINE in 'cat $1'
do
grep '$LINE' $2
done
我想我想让它变得动态,所以我可以执行类似这样的事情
./script.ksh fileA.txt fileB.txt
任何建议都会受到赞赏,非常感谢!
答案 0 :(得分:3)
无需编写脚本:
grep -f $1 $2
答案 1 :(得分:0)
您非常接近目标,但代码中存在一些小错误。
这应该有效:
#!/bin/sh
for LINE in `cat $1`
do
grep "$LINE" $2
done
以下是一个例子:
<强> fileA.txt:强>
Hi Hello Hairy Harry Hates His Home
<强> fileB.txt:强>
James Bond likes Harry Sylvia is cool Fiona is mad Hello there Hairy toenails
<强>输出:强>
Hello there Hairy toenails James Bond likes Harry
答案 2 :(得分:0)
配合,你的第一行包含两个错误,应该是这样的:
#! /bin/sh
我放了一些额外的空间,以便您看到差异,这可能是您的脚本无法正常工作的原因。
没什么大不了的,错别字发生了,Bash在白色空间方面可能是一个真正的PIA。
顺便说一句,好老差异怎么样?diff file1 file2
man 1 diff
)