我有一些肮脏的工作要做,所以Bash脚本似乎是一个不错的选择.我是Bash的新手,这种经历让我很沮丧.
文件mapfiles.txt由以下行组成.每条线有四个由白色空间隔开的段.每个段表示外部程序名称'prog'的输入参数.例如,"cm19_1.png"是文件名,"0001"是索引,"121422481"是经度,"31035995"是纬度.
文件:mapfiles.txt
cm19_1.png 0001 121422481 31035995
cm19_2.png 0002 121423224 31035995
cm19_3.png 0003 121423967 31035995
…
Run Code Online (Sandbox Code Playgroud)
我想对每一行执行类似的命令.如下所示,prog的输入参数顺序略有不同.所以编写一个bash脚本来处理重复的工作是有意义的.
[Usage] prog <index> <longitude> <latitude> <filename>
example: prog 0001 121422481 31035995 cm19_1.png
Run Code Online (Sandbox Code Playgroud)
通常,bash脚本将以这种方式运行:
这是run.sh.
#!/bin/sh
input=mapfiles.txt
cmd=prog
while read line
do
file=$(echo $line | cut -d' ' -f1)
key=$(echo $line | cut -d' ' -f2)
log=$(echo $line | cut -d' ' -f3)
lat=$(echo $line | cut -d' ' -f4)
echo $cmd $key …Run Code Online (Sandbox Code Playgroud) 我从不期望重命名git repo,更具体地说,它是顶级文件夹保存项目,会非常困难.是的,项目包含一些子模块,但它是需要重命名的顶级文件夹,而不是子模块文件夹.Git似乎在其子模块机制中记录了一些奇怪的绝对路径.
让我们假设一下
/tmp.proj_master和proj_mod.porj_master,proj_ALL然后克隆prom_mod为其中的子模块.proj_ALL为proj_onebillion.然后黑魔法发生了.以下步骤将重现我提到的问题.我使用的git版本是:
$ git --version
git version 1.7.9.5
Run Code Online (Sandbox Code Playgroud)
初始化proj_master.
$ cd /tmp
$ mkdir proj_master; cd proj_master
$ git init .
$ touch README
$ git add .; git commit -m "hello proj_master"
Run Code Online (Sandbox Code Playgroud)初始化proj_mod.
$ cd /tmp
$ mkdir proj_mod; cd proj_mod
$ git init .
$ touch …Run Code Online (Sandbox Code Playgroud)我使用Apache Maven来管理我的Java库(jar)和一些使用libs的项目.为了方便起见,我使用mvn eclipse:eclipse生成Eclipse项目文件,可以将其导入Eclipse工作区进行编辑.
当我在同一个Eclipse工作区中编辑主项目和Java lib项目时出现问题.也就是说,mvn eclipse:eclipse包括文件中的src路径依赖性.classpath,而不是jar预期的依赖性.
假设我有一个名为的Jave lib项目mylib.相应的jar文件mylib.jar已部署到由我维护的私有Maven仓库.为了在主项目中使用mylib.jar,包含以下依赖项pom.xml.
<!-- pom.xml for the main project -->
<dependency>
<groupId>namespace.my</groupId>
<artifactId>mylib</artifactId>
<version>[1.0, )</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
mvn compile并且mvn test工作完美,mylib.jar从我的仓库自动下载.但是,在尝试时mvn eclipse:eclipse,我发现生成的.classpath文件不包含mylib.jar预期的依赖项.相反,它包括mylib的源文件目录,如下所示.
<!-- .classpath file generated by mvn eclipse:eclipse -->
<classpathentry kind="src" path="/mylib"/>
Run Code Online (Sandbox Code Playgroud)
似乎Maven读取Eclipse的元数据并找到mylib并且主项目在同一工作区中共存.因此,maven包含了我的好处.该死的.如何告诉maven忽略本地项目源并只包含jar文件?
在Mac OS X上设置我首选的tmux热键时遇到了一些麻烦.
调用tmux魔法的最常见热键是CTRL+ A和CTRL+ B.但我宁愿选择其他按键,原因如下:Ca是"跳到行首"的全局热键; C- b用于"在线上向后移动"和"在Vim中向上翻页".我不想在tmux中打破这些好的规则.
所以,我尝试为tmux热键设置一些非经常使用的按键.我选择的是CTRL- ,,CTRL- .,或CTRL-;
我在.tmux.conf文件中写了这个语句:
set-option -g prefix C-,
Run Code Online (Sandbox Code Playgroud)
我开始tmux.哦,它说"坏键".我用C-代替C-.或C-;.它也不起作用.
那么,我怎样才能将tmux热键设置为CTRL- ,?
所有.我正在使用Pandoc作为我的写作工具.它在各种标记格式(markdown,LaTeX,HTML)之间转换的惊人能力给我留下了深刻的印象."一个源文件,多输出格式"听起来不错,但我有一些关于同步降价格式之间变化的问题.
比方说,我首先写下降价源文件,名称hello.mkd.我按时间顺序列出我的任务:
hello.mkd文件.hello.mkd为hello.tex和hello.html.hello.tex:添加一些软件包,添加一些复杂的环境,使TeX文档更加美观.hello.html.问题出现了:如果我在编辑时发现拼写错误或其他错误,我hello.tex应该.tex立即修复它还是将其修复到源文件中hello.mkd并重新生成输出?
我有两个选择:
hello.mkd,然后regerate所有的输出,这是指hello.tex与hello.html在这里.然后我必须合并对特定文件类型所做的所有更改,例如,合并所有packages/environment等.更改为新生成的文件.hello.mkd,hello.tex,hello.html,和更多的修补程序/文件类型,如果你喜欢.嗯,这种方法需要较少的合并工作.但它看起来很荒谬,因为这三个共享的标记文件现在似乎无关紧要.嗯......你怎么看?