小编Ken*_*ent的帖子

需要awk变量赋值语句解释

好的,直截了当,这是代码,我格式化了一些代码,使其易于阅读:

awk '{
t=$0   ; 
$0=t   ; $0=//           ; print "$0=//           ; value of $0 is ",$0
$0=t   ; $0=/./          ; print "$0=/./          ; value of $0 is ",$0
$0=t   ; $0=/*/          ; print "$0=/*/          ; value of $0 is ",$0
$0=t   ; $0=/**/         ; print "$0=/**/         ; value of $0 is ",$0
$0=t   ; $0=/[0-9]/      ; print "$0=/[0-9]/      ; value of $0 is ",$0
$0=t   ; $0=/[a-z]/      ; print "$0=/[a-z]/      ; value of $0 is ",$0
$0=t   ; $0=/[0-9][a-z]/ …
Run Code Online (Sandbox Code Playgroud)

awk gawk

5
推荐指数
1
解决办法
369
查看次数

如何在 vim 中为 vscode 向上或向下移动当前行

使用 VS Code,如何使用 Vim 键绑定向上或向下移动我所在的当前行(或当前选择)?正常使用编辑器时,我可以使用“alt + up/down”来实现这一点。

我正在使用 vscodevim 扩展。

text-editor visual-studio-code vscodevim

5
推荐指数
3
解决办法
2009
查看次数

不使用鼠标的 VSCode VIM 中的命令悬停工具提示

我最近发现 VSCode vim 中有一个扩展的悬停工具提示,可以通过在按住命令键的同时悬停在令牌上来查看。就我而言,我对查看此工具提示中可用的打字稿类型定义特别感兴趣,但在基本悬停工具提示中不可用。

我使用 VSCode Vim 扩展,因此使用 'gh' 无需使用鼠标即可触发这些工具提示,但按住 command+'gh' 不会产生预期效果(它会触发其他命令修饰符热键)。

这是从“gh”加载的工具提示示例:

无指令悬停

这是悬停时按住命令的扩展工具提示示例:

用命令悬停

visual-studio-code vscodevim

5
推荐指数
1
解决办法
548
查看次数

如何查找大小相同的文件?

我有一个像这样的文件结构

a/file1
a/file2
a/file3
a/...
b/file1
b/file2
b/file3
b/...
...
Run Code Online (Sandbox Code Playgroud)

在每个目录中,某些文件具有相同的文件大小,我想删除它们.

我想如果问题可以解决一个目录,例如dir a,那么我可以围绕它包裹一个for循环?

for f in *; do
???
done
Run Code Online (Sandbox Code Playgroud)

但是如何查找大小相同的文件?

linux bash awk

4
推荐指数
2
解决办法
4785
查看次数

生成随机(a,b)调用Random(0,1)

有已知的Random(0,1)功能,它是一个统一的随机函数,这意味着,它将给出0或1,概率为50%.实现Random(a, b)只调用Random(0,1)

我到目前为止,将范围ab放在一个基于0的数组中,然后我有索引0,1,2 ... ba.

然后调用RANDOM(0,1)ba次,将结果总和为生成的idx.并返回元素.

但是由于书中没有答案,我不知道这种方式是正确的还是最好的.如何证明返回每个元素的概率完全相同1/(b-a+1)

什么是正确/更好的方法来做到这一点?

random algorithm

4
推荐指数
1
解决办法
1817
查看次数

部分分支或部分合并或其他方式来帮助我同步dotfiles?

我不知道如何使我的要求在标题中缩短,对不起,如果它没有意义.我会在这里解释一下:

许多人将他们的dotfiles放在bitbucket或github上,以方便以后的安装或配置,在不同的PC上同步.我做了同样的事情,但是我想做一些特别的事情,我不确定mecurial/git是如何帮助的.

是)我有的:

我有3台机器,比如Home,Office和Client,所有linux操作系统(可能是不同的发行版).为了使示例简单,请说我只想将一个文件.zshrc放入repo.问题是,三个操作系统有不同的系统变量(或其他设置).例如

  • Office已安装JBOSS,然后在.zshrc我需要导出JBOSS_HOME var.
  • 客户端已安装Oracle,然后导出不同的vars集.
  • Office必须导出HTTP_PROXY,但HOME不是,客户端也需要它,但代理值不同等.

我现在所做的是,我将那些机器特定的设置(主要是导出,别名声明)提取到另一个文件,比方说myVar.sh.并在结尾处采购.zshrc.

所以3台机器有共同的部分(相同.zshrc)和不同的部分(myVar.sh).

我想要的是:

  • 在任何机器上,如果我找到了一些不错的设置,我会更改.zshrc文件(公共部分)并推送.这些更改应该很容易与其他机器同步(例如,拉动)

  • 如果我myVar.sh在HOME上更改了(不同的部分)并推送,myVar.sh如果我拉上Office机器,它不应该影响Office .

我在做什么:

现在我在bitBucket上有一个Repo,还有三个分支(H,O,C).在家用电脑上,我只是玩Home分支.对于Office,Client也是如此.

问题是,如果我在一台PC上更改了公共部分,那么更改就在它自己的分支中,有点难以同步到另外两个.因为我永远不会合并那些分支.

我也想到为不同的电脑mk不同的目录.例如

/.zshrc
|--/HOME/myVar.sh
|--/Office/myVar.sh
|--/Client/myVar.sh
Run Code Online (Sandbox Code Playgroud)

并编写shell脚本,例如检查$ HOST以决定写入myVar.sh哪个目录.但我怀疑,如果这是实现我的目标的最佳方式.当我看到我的dotfiles目录时,我看到所有3个人的设置.我应该小心并输入正确的一个来读取文件.

在现实世界中,公共部分包含的不仅仅是.zhsrc(tmux,vimrc,xdefault ..),不同的部分也是如此.

我不知道我们可以以某种方式制作部分分支或在存储库上进行部分合并...

我使用hg远远超过git,如果hg可以解决它我宁愿hg,如果没有,git也是可以接受的.我没有太多git经验,除了克隆,推,拉,上,合并,ci.

现在,我该怎么办

并且,感谢您阅读此...


编辑更多关于不同部分的内容

我要感谢所有人给我答案.正如我上面所说,我真机中的不同部分并不那么简单myVar.sh.例如,我将我的公司 - 笔记本电脑(Office)带到不同的客户端(大约有6个客户端,并非所有客户端都为我们提供PC,这很好,因为我可以随处使用Linux),并为每个客户配置打印机.我也会把这些配置放在Repo中.因为如果有一天我必须刷新我的系统,或硬盘失败,我可以很容易地设置这些打印机.其他属于不同部分的东西,但我不能简单地"源xxx"之类的

  • 用于跟踪点的Xorg.conf
  • .hgrc文件(因为在公司我们有自己的repo,uid,pwd,代理..)
  • 一些预配置的systemd模块,基本上是.conf文件.但机器特定,例如radeon.conf仅适用于我的家用笔记本电脑.并且客户端PC根本没有安装systemd.

    这就是我为PC考虑不同目录的原因.

正如我现在所说的那样,我有3个分支方式,并且myConf在我的目录中有一个目录getConf.sh,用于复制dotfiles,不同的confs等myConf.实际上也getConf.sh属于不同的部分,因为脚本对于所有的pc都不相同.

因此,我认为if-else/switch当时source可能不适用于这种情况.

昨天我刚拿了.zshrc,试着让这个例子变得简单.如果它误导了你们,对不起.

git shell mercurial dotfiles

4
推荐指数
1
解决办法
406
查看次数

查找文件并添加一行

我正在做bash脚本,我需要.info在该目录的目录和子目录中的所有类型的文件中添加一行.

我要添加的文本version = $version 位于文件末尾的新行.

我现在所拥有的只是:

find ./ -name '*.info'
Run Code Online (Sandbox Code Playgroud)

哪个列出文件,但什么都不做......我是bash脚本编写的新手.

bash sed batch-processing

4
推荐指数
1
解决办法
805
查看次数

使用awk提取最大值和最小值

如何使用awk命令从下表中查找最大值和最小值.

20 90 60 30
55 75 80 85
10 15 99 95
55 95 70 20
9  35 85 75
Run Code Online (Sandbox Code Playgroud)

我想输出像max value=99min=9

unix shell awk

4
推荐指数
1
解决办法
2万
查看次数

Vim导航需要太多思考

我已经使用vim几年了,我喜欢做简单的任务是多么容易,比如在当前行上方插入,删除整行等等.我甚至将我的大写锁定映射以逃避它!

vim的一个我永远无法克服的问题是,与鼠标移动相比,导航需要多少思考,即使你已经学会了键.我知道一些动作,比如%, ^, $, f/F, t/T在命令之前使用数字,但我觉得使用它们需要花费很多精力,而且它们会破坏我的工作流程.

例如,我需要删除此url的"/ many/sections /",并且光标位于单词"really"的中间:

http://this/is/a/real|ly/long/url/with/many/sections/

使用鼠标,只需单击并选择要删除的部分并点击删除即可.

如果我在vim中这样做,我发现自己在想:好的,首先$将光标移到最后.然后我想删除这些部分,这样我就可以使用'/'作为分隔符,现在我必须计算我想要移回的'/'中有多少.它是两个,我必须向后搜索,所以它F不是f.所以我认为命令应该是$d2F/.

或者,我可以使用'm'作为光标的标志并从那里删除到最后但是我必须扫描网址以查找要使用的字母.如果还有另外一个m,我也必须;反复按或开始计数.

这似乎比使用鼠标困难得多,即使延迟将手从键盘上移开.对于多行选择尤其如此,我发现自己花费大量时间计算单词或行或寻找分隔符.

此外,有时命令删除或删除一些额外的分隔符字符,因为我使用f而不是t反之亦然,而使用鼠标,我可以精确指出我正在尝试选择的内容.

vim

4
推荐指数
1
解决办法
225
查看次数

grep -v模式也删除1行之前和4行之后

我想grep一个模式并删除匹配模式的行,并且还在上下文之前的1行和4行之后.我试过了:

grep -v -A 4 -B 1
Run Code Online (Sandbox Code Playgroud)

提前致谢!

例:

Rule: r1
Owner: Process explorer.exe Pid 1544
0x01ec350f  8b 45 a8 0f b6 00 8d 4d a8 ff 14 85 c8 7f ed 01   .E.....M........
0x01ec351f  84 c0 75 ec 8b 4d fc e8 ba f5 fe ff f7 85 b0 fd   ..u..M..........
0x01ec352f  ff ff 00 00 01 00 75 13 33 c0 50 50 50 68 48 28   ......u.3.PPPhH(
0x01ec353f  eb 01 33 d2 8b cb e8 b0 57 …
Run Code Online (Sandbox Code Playgroud)

regex bash shell awk grep

4
推荐指数
1
解决办法
1993
查看次数