Muj*_*jan 0 linux bash shell scripting
首先,我很抱歉我的英语不好.我想读取一个文件(tel.txt),其中包含许多电话号码(每行一个数字),并使用该行grep命令搜索源文件中的特定号码(另一个文件)!
我写了这段代码:
dir="/home/mujan/Desktop/data/ADSL_CDR_Text_Parts_A"
file="$dir/tel.txt"
datafile="$dir/ADSL_CDR_Like_Tct4_From_960501_to_97501_Part0.txt"
while IFS= read -r line
do
current="$line"
echo `grep -F $current "$datafile" >> output.txt`
done < $file
Run Code Online (Sandbox Code Playgroud)
tel文件样本:
44001547
44001478
55421487
Run Code Online (Sandbox Code Playgroud)
但那段代码什么都没有!当我用文字声明'current'变量时,它可以正常工作!发生了什么?!
您的grep命令被重定向以将其输出写入文件,因此您在终端上看不到它.
无论如何,你应该使用更简单,更快捷的方式
grep -Ff "$file" "$datafile"
Run Code Online (Sandbox Code Playgroud)
| tee -a output.txt如果要将输出保存到文件并同时查看,请添加.
echo `command`写作是一种错误且低效的方式command.(echo "`command`"只会效率低下.)没有理由将标准输出捕获到字符串中,以便您可以echo将该字符串转换为标准输出.