我正在尝试迭代几行 bash 脚本并回显所有非注释行。
在我的循环中,我有以下命令:
echo $line | cut -d" #" -f1
Run Code Online (Sandbox Code Playgroud)
但是,解释器向我抛出以下错误:
cut: bad delimiter
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
正如评论中提到的,-d参数 tocut只需要一个字符。尝试使用nawk以下示例代替:
echo $line | nawk 'BEGIN {FS=" #" } ; { print $1 }'
Run Code Online (Sandbox Code Playgroud)
或者只打印不以“#”开头的行,请使用grep:
grep -v " #" <file>
Run Code Online (Sandbox Code Playgroud)
或者只打印以散列开头的行,或者只打印空格和散列,我会使用 Perl:
perl -n -e 'unless (/(\S+)*#/) {print}' <file>
Run Code Online (Sandbox Code Playgroud)