我怎么得到这个
ls -1 | sed 's/\(.*\)/alias \1 "shot \1"/'
变成别名?
例子:
alias asdf "ls -1 | sed 's/\(.*\)/alias \1 "shot \1"/'"
问题是当我找到别名的引号时。
最佳答案
不要使用别名,使用函数:
my_func() {
ls -1 | sed 's/.*/alias & "shot &"/'
}
但是你应该avoid parsing the output of ls .请阅读链接!
在您的情况下,假设文件名中没有换行符,可以使用 ^0:
my_func() {
printf '%s\n' * | sed 's/\(.*\)/alias \1 "shot \1"/'
}
^0 这会让您遇到解析 ls 时遇到的相同问题,但不会调用额外的进程,因为 printf 是内置的。
关于linux - 如何在引号内使用 sed 中的引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41188475/