我在bash脚本中有以下命令。
GREP_RESULT=$(grep -zoP "\.global LIST(.|\n)*-1\Z" part1.s)
我得到了以下错误。
warning: command substitution: ignored null byte in input
我尝试了this post中提出的解决方案,并将其更改为以下内容。
GREP_RESULT=$(tr -d '\0' < grep -zoP "\.global LIST(.|\n)*-1\Z" part1.s)
这反过来会导致以下错误。
grep: No such file or directory
避免第一个错误的正确方法是什么?
发布于 2022-10-26 21:42:21
更新:
来自OP的评论:grep -z
正在流的末尾添加一个\0
因此,需要修改grep
输出(而不是修改输入文件):
grep -zoP "\.global LIST(.|\n)*-1\Z" part1.s | tr -d '\0'
最初的答案..。
首先将tr
应用于数据文件;有几个变体:
grep -zoP "\.global LIST(.|\n)*-1\Z" <(tr -d '\0' < part1.s)
# or
tr -d '\0' < part1.s | grep -zoP "\.global LIST(.|\n)*-1\Z"
https://stackoverflow.com/questions/74214496
复制相似问题