Update:
См Mark Reeds правильный ответ. Это было неправильно, потому что нулевые значения были необходимы для файлов из файла, а не для файлов, генерируемых grep
.
Оригинал:
Вам нужно что-то более, как это:
grep -Z -E ". " suspicious.txt | xargs -0 chmod 000
От xargs человек страницы:
Because Unix filenames can contain blanks and newlines, this default behaviour is often problematic; filenames containing blanks and/or newlines are incorrectly processed by xargs. In these situations it is better to use the -0 option, which prevents such problems. When using this option you will need to ensure that the program which produces the input for xargs also uses a null character as a separator.
От Grep человека странице:
-Z, --null
Output a zero byte (the ASCII NUL character) instead of the character that normally follows a file name. For example, grep -lZ outputs a zero byte after each file name instead of the usual newline. This option makes the output unambiguous, even in the presence of file names containing unusual characters like newlines. This option can be used with commands like find -print0, perl -0, sort -z, and xargs -0 to process arbitrary file names, even those that contain newline characters.
Спасибо, Марк! – Zaheer