Grep 用户输入以查找号码
Grep user input to find number
我有一个看起来像这样的文件
example text [1234] [0] Part 2 /var/tmp/path
example text [1234] [0] Part 3 /var/tmp/path
example text [1234] [0] Some Text more text
example text [1235] [0] Part 4 /var/tmp/path
example text [1235] [0] Part 5 /var/tmp/path
example text [1236] [0] Part 6 /var/tmp/path
example text [1236] [0] other text foo bar
我有另一个文本文件,用户可以在其中写入零件。
所以它看起来像这样:
Part 2
Part 4
Part 6
我需要一个 grep,所以第二个文件被读取并搜索第一个括号中的数字,并将它们保存到一个变量中
在示例中,我需要获取输出
1234
1235
1236
并且它应该在一个变量中以用于进一步的工作
到目前为止我用
试过了
grep -F -f parts.txt search.log
但我不知道如何不显示第 2、4 和 6 部分的行,而只显示第一个括号内的数字
不确定是否只有一个 grep 语句可以完成这项工作,但一个小循环可以。
cat file2 |while read line
do
grep $line file1|awk '{print }'|sed 's/\[//g'|sed 's/\]//g' >> tempfile
done
现在可以进一步使用临时文件或代替临时文件,您可以通过
将其放入变量中
abcd="$abcd (grep $line file1|awk '{print }'|sed 's/\[//g'|sed 's/\]//g')"
这是一种方法。
myparts=$(grep -F -f parts.txt search.log | awk -F'[][]' '{print }' | sort | uniq)
parts.txt是用户写入零件编号的文件。
grep returns 部件号匹配的行。
awk 使用 [
和 ]
作为分隔符来提取它们之间的第一个单词
我有一个看起来像这样的文件
example text [1234] [0] Part 2 /var/tmp/path
example text [1234] [0] Part 3 /var/tmp/path
example text [1234] [0] Some Text more text
example text [1235] [0] Part 4 /var/tmp/path
example text [1235] [0] Part 5 /var/tmp/path
example text [1236] [0] Part 6 /var/tmp/path
example text [1236] [0] other text foo bar
我有另一个文本文件,用户可以在其中写入零件。 所以它看起来像这样:
Part 2
Part 4
Part 6
我需要一个 grep,所以第二个文件被读取并搜索第一个括号中的数字,并将它们保存到一个变量中
在示例中,我需要获取输出
1234
1235
1236
并且它应该在一个变量中以用于进一步的工作
到目前为止我用
试过了grep -F -f parts.txt search.log
但我不知道如何不显示第 2、4 和 6 部分的行,而只显示第一个括号内的数字
不确定是否只有一个 grep 语句可以完成这项工作,但一个小循环可以。
cat file2 |while read line
do
grep $line file1|awk '{print }'|sed 's/\[//g'|sed 's/\]//g' >> tempfile
done
现在可以进一步使用临时文件或代替临时文件,您可以通过
将其放入变量中abcd="$abcd (grep $line file1|awk '{print }'|sed 's/\[//g'|sed 's/\]//g')"
这是一种方法。
myparts=$(grep -F -f parts.txt search.log | awk -F'[][]' '{print }' | sort | uniq)
parts.txt是用户写入零件编号的文件。
grep returns 部件号匹配的行。
awk 使用 [
和 ]
作为分隔符来提取它们之间的第一个单词