Bash 美元符号
“Unix编程环境”指出,sed中正则表达式中使用的“$”表示行结束,这对我来说很好,因为Bash 美元符号,bash,sed,escaping,Bash,Sed,Escaping,“Unix编程环境”指出,sed中正则表达式中使用的“$”表示行结束,这对我来说很好,因为 cat file | sed 's/$/\n/' 解释为“在每行末尾添加换行符” 当我尝试使用命令时,问题出现了: cat file | sed '$d' 这一行不应该删除每一行而不是最后一行吗?在此上下文中,美元符号表示最后一行的结束。我错了什么?请注意,sed中的regex必须位于分隔符(;,:,~等)内,而不是引号 /regex/ 例: 或 例: 但不是'regex'。因此,sed不会将'$d
cat file | sed 's/$/\n/'
解释为“在每行末尾添加换行符”
当我尝试使用命令时,问题出现了:
cat file | sed '$d'
这一行不应该删除每一行而不是最后一行吗?在此上下文中,美元符号表示最后一行的结束。我错了什么?请注意,sed中的
regex
必须位于分隔符(;
,:
,~
等)内,而不是引号
/regex/
例:
或
例:
但不是
'regex'
。因此,sed不会将'$d'
中的$
视为正则表达式<代码>“$d”的作用类似于指出最后一行的地址。请注意,sed中的regex
必须位于除引号以外的分隔符(;
,:
,~
等)内
/regex/
例:
或
例:
但不是
'regex'
。因此,sed不会将'$d'
中的$
视为正则表达式<代码>'$d'的作用类似于指出最后一行的地址。在第二种用法中,没有正则表达式。$
有一个地址,表示最后一行。在第二种用法中,没有正则表达式。$
有一个地址,表示最后一行。$
在s
命令的模式中使用时,将被视为正则表达式锚
s/$/\n
然而,在$d
中,$
不是regex锚,它是地址符号,表示输入的最后一行,使用d
命令将其删除
还要注意的是,cat
在上一个命令中是不必要的。它可以用作:
sed '$d' file
$
在s
命令的模式中使用时,被视为正则表达式锚
s/$/\n
然而,在$d
中,$
不是regex锚,它是地址符号,表示输入的最后一行,使用d
命令将其删除
还要注意的是,cat
在上一个命令中是不必要的。它可以用作:
sed '$d' file