削减命令换行

ped*_*dr0 18 bash cut

我有这样一个文件:

one
two 
three 
four
Run Code Online (Sandbox Code Playgroud)

我想在bash脚本中使用for循环来扫描文件行以获取行.以前我用过cut但是我无法给cut命令换行分隔符,我该怎么办?

这样它不起作用:

cut -d'\n' -f1
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?

小智 58

我发现自己遇到了同样的问题,这对我有用:

cat file.cut | cut -d$'\n' -f1
Run Code Online (Sandbox Code Playgroud)

要么:

cut -d$'\n' -f1 file.cut
Run Code Online (Sandbox Code Playgroud)

  • @JulesGM 它之所以有效是因为 Bash 有一个称为 ANSI-C 引用的功能。文档提到了这一点:“$'string' 形式的单词被特殊处理。单词扩展为字符串,并按照 ANSI C 标准的规定替换反斜杠转义字符。”。您可以在此处找到文档:https://www.gnu.org/software/bash/manual/html_node/ANSI_002dC-Quoting.html (8认同)
  • 这为什么有效?在这种情况下,美元符号会做什么 (2认同)

Ben*_*oit 14

使用cat了串联或显示.这里不需要它:

while read line ; do
    echo "$line"
done < file
Run Code Online (Sandbox Code Playgroud)