![设备上的 grep 选项‘n’的输出是什么?](https://linux22.com/image/1355105/%E8%AE%BE%E5%A4%87%E4%B8%8A%E7%9A%84%20grep%20%E9%80%89%E9%A1%B9%E2%80%98n%E2%80%99%E7%9A%84%E8%BE%93%E5%87%BA%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
如果我这样做:
grep -a -n'测试'/dev/sdb10
它将在设备 sdb10 上以二进制级别搜索字符串“test”。我可以看到“n”选项的输出,但它代表什么?设备是否被视为单个文件?
我的目标是精确定位设备上文件的位置,以便我可以“添加”驱动器的某个部分。
答案1
开关-a
( --text
) 确实将二进制文件视为文本文件,并且/dev/sdb10
始终将设备文件视为实际文件,但-n
开关 ( --line-number
) 仅打印行号,这在这种情况下毫无用处。-b
开关 ( --byte-offset
) 将帮助您找到字符串的位置。
为了避免回显大量不可打印的字符,您可以将它与-o
开关 ( --only-matching
) 结合使用。
例子:
sudo grep -abo test /dev/sdb10