考虑以下grep命令,该命令旨在匹配变量source_files
中列出的文件中的crlf行结尾。
# In reality the variable "source_files" is constructed dynamically
source_files="/foo/bar.txt"
files_with_lf=$(echo "$source_files" | xargs -t -0 grep -Ua '\([^'$'\r'']\|^\)$')
这将打印:
grep -Ua \([^]\|^\)$ /foo/bar
grep: Unmatched [, [^, [:, [., or [=
似乎\r
字面值未正确传递。我怎样才能确定它呢?
为了记录,我正在使用
$ bash --version
GNU bash, version 4.3.42(5)-release (x86_64-pc-msys)
Copyright (C) 2013 Free Software Foundation, Inc.