gpt4 book ai didi

linux - 在 `alias` 中加上引号就是 `CSH`

转载 作者:IT王子 更新时间:2023-10-29 00:32:07 31 4
gpt4 key购买 nike

我想要一个别名来执行休闲命令:

zgrep 'failed at' $PWD/RESULTS/log_dir/* | cut -d"'" -f2,4 | tr "'" "\t"

我尝试了不同的方法来给它取一个别名,但似乎都不起作用。例如,我的一些尝试:

alias get_failed "zgrep 'failed at' $PWD/RESULTS/log_dir/* | cut \"\'\" -f2,4 | tr \"\'\" \"\\t\""
alias get_failed "zgrep 'failed at' $PWD/RESULTS/log_dir/* | cut \"\'\" -f2,4 | tr \"\'\" \"\\t\"

和其他人,我该如何制作别名?

最佳答案

此问题是由 csh 功能引起的:如果您已经在 "引号字符串中,则无法转义 "(' 也是如此)。由于兼容性问题,这仍然是默认设置。您可以使用更健全的 shell 或使用 backslash_quote 配置:

set backslash_quote
alias get_failed "zgrep 'failed at' $PWD/RESULTS/log_dir/* | cut -d\"'\" -f 2,4 | tr \"'\" \"\\t\""

另外,请注意,您对 cut 的调用会删除任何单引号 ('),因此您的 tr 调用不会做太多事情。 (多次编辑我的答案以确保它完全符合您的原始命令。)

关于linux - 在 `alias` 中加上引号就是 `CSH`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6847085/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com