我经常被问到这样一个问题:
``K.,这个引号的约定从何而来?你知道,那个用两个重音符引入一个带引号的字符串和两个普通的正直单引号结束它的那个?''
我不知道。这是从哪里来的?
使用包含大量替换词-替换词对的字典在文件中进行字符串替换的好方法是什么?而到了很多,我实际上意味着约20 -并不多,但许多足以使我想整齐地组织起来。
我有点想以dictionary.txt
一种易于管理的方式在一个文件中收集所有替代物-替代物对,因为我需要替换很多东西,比如:
"yes" : "no"
"stop" : "go, go, go!"
"wee-ooo" : "ooooh nooo!"
"gooodbye" : "hello"
"high" : "low"
"why?" : "i don't know"
Run Code Online (Sandbox Code Playgroud)
现在我想在一些文件中应用这些替换novel.txt
。
然后我想运行,magiccommand --magicflags dictionary.txt novel.txt
以便yes
in 的所有实例novel.txt
都被替换no
(因此甚至Bayesian
会被替换为Banoian
),并且所有的goodbye
in实例都novel.txt
将被替换为hello
等等。
到目前为止,我需要替换(和替换)的字符串中没有任何引号(单引号或双引号)。(当然,看到一个解决方案可以很好地处理包含引号的字符串会很好。)
我知道sed
并且awk
/gawk
主要可以做这样的事情,但是他们也可以使用这样的字典文件吗?似乎gawk
是合适的人选magiccommand
,什么是合适的magicflags
?我需要如何格式化我的dictionary.txt
?
我想根据当前工作目录使用不同的别名(或者可能:相同的别名不同)。例如,我可能想使用一些额外选项l
的简写ls
。我想使用两种变体:
alias l="ls --sort=extension" # variant A\nalias l="ls --quoting-style=literal" # variant B\n
Run Code Online (Sandbox Code Playgroud)\n\n通常,我想使用变体 A。但是,当列出图片 \xe2\x80\x93 时,即当我的工作目录为 时,我想使用变体~/pictures
B。(这只是一个最小的例子。我的实际用例更复杂。)
我知道我可以简单地编写l()
一个在 的输出上区分大小写的函数$(pwd)
。但是,我想要一个更强大的解决方案,它允许我重命名特定目录而不更改任何别名(这不会让我的\xe2\x80\x99t混乱.zshrc
)。
但是是否可以覆盖或添加别名,例如通过在相关目录中设置本地.zshrc
(就像 vim 和 local 一样.vimrc
)?
此外,它(也)可能在 bash 或任何其他 shell 中吗?
\n当我尝试挂载 lvm 快照设备时,出现错误:
$ sudo mount -o loop /dev/mapper/matrix-snap--of--core /home/me/mountpoint
mount: /home/me/mountpoint: mount(2) system call failed: File exists.
Run Code Online (Sandbox Code Playgroud)
- 什么是“文件存在”。试图告诉我的错误?
- 如何挂载lvm快照设备?
mount 命令“以前一直有效”,尽管我上次检查是在 2018 年 10 月。在这个三年前的问题中遇到了类似的错误。但是,错误消息略有不同,现在是 2019 年……
这是我的输出lsblk
。
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 465.8G 0 disk
??sda1 8:1 0 465.8G 0 part
??core 254:0 0 465.8G 0 crypt
??matrix-swapvolume 254:1 0 4G 0 lvm [SWAP]
??matrix-core-real 254:3 0 461.8G 0 lvm
??matrix-core 254:2 0 461.8G 0 lvm /
??matrix-snap--of--core 254:5 …
Run Code Online (Sandbox Code Playgroud) 我有一个类似书籍索引的行列表,比如
day
satur-
sun-
holy-
night
ball
to-
eve
election
christmas
Run Code Online (Sandbox Code Playgroud)
现在我想以明显的方式对这些行进行排序:我想将每个“父”条目 ( day
, night
, eve
) 与它们各自缩进的“子”条目 ( satur-
, sun-
, …) 分组,并按它们的父条目对这些组进行排序。我还想对任何给定组中的子条目进行排序。
因此,所需的输出是:
day
holy-
satur-
sun-
eve
christmas
election
night
ball
to-
Run Code Online (Sandbox Code Playgroud)
我如何最好地使用 unix 核心工具来实现这一点sort
?
假设我有一个文件内容的标准输入流和一个需要文件名作为参数的命令,我想在由标准输入流的文件内容组成的文件上运行该命令。
例如,而不是命令
imageviewer mouse.jpg
Run Code Online (Sandbox Code Playgroud)
我想要一些神奇的线magic
,使这相当于
cat mouse.jpg | magic
Run Code Online (Sandbox Code Playgroud)
这magic
在zsh
或 中会是什么样子bash
?
最好,我希望它看起来像
cat mouse.jpg | submagic | xargs imageviewer
Run Code Online (Sandbox Code Playgroud)
也就是说,我想submagic
从标准输入流创建一个临时文件并输出创建的文件的文件名。
这些行magic
或submagic
应该是仅使用 bash 或 zsh 命令、它们的内置命令、GNU coreutils 等的 shell 管道。
这是整个问题。以下只是澄清和背景,因为人们一直在误解我的意思。
好的,所以我想我说清楚了,但似乎我没有:我真的希望有一个管道做相当于
imageviewer mouse.jpg
Run Code Online (Sandbox Code Playgroud)
即开始正好与cat mouse.jpg | …
。也就是说,我真的想正是一条线magic
或submagic
使得准确上述工作的管道-我的意思是我的问题从字面上。
这尤其意味着以下建议的解决方案不起作用:
tmpfile = $(mktemp); cat mouse.jpg | … …