Bash shell 中的错误分隔符

Naf*_*aly 5 bash

我正在尝试迭代几行 bash 脚本并回显所有非注释行。

在我的循环中,我有以下命令:

echo $line | cut -d" #" -f1
Run Code Online (Sandbox Code Playgroud)

但是,解释器向我抛出以下错误:

cut: bad delimiter
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

War*_*ick 4

正如评论中提到的,-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)