我有一个文件,我需要将两列中的值与另外两列中的值进行比较。举些例子:
Item A B C D
1 201 3101 3101 201
2 3101 201 202 3101
3 3101 201 201 3102
4 3101 201 3202 202
Run Code Online (Sandbox Code Playgroud)
因此,我试图做的是比较列一&乙到Ç&d,但在列值一&乙和Ç&d是可以互换的。如果两个值相同,我希望有一个像2这样的输出,如果只有一个匹配,则为1,如果两者都不匹配,则为0。答案是这样的
Item A B C D Output
1 201 3101 3101 201 2
2 3101 201 202 3101 1
3 3101 201 201 3102 1
4 3101 201 3202 202 0
Run Code Online (Sandbox Code Playgroud)
我将如何能够实现这一目标?
我+在使用像find.
来自SO post 的示例-
find -exec touch -t 201007162310.00 \+
Run Code Online (Sandbox Code Playgroud)
请帮助我理解这个的用法。
我有几个实用程序命令和别名,它们在任何目录中都足够通用,可以满足我自己的要求。但是有某些目录,例如“build”,我需要自定义行为。
为此,我在这些目录中创建了一个不同的文件,其中包含具有相同名称的函数和别名的修改(这样我就不需要记住新名称)。
目前,我在 cd'ing 到特定目录后手动获取文件
source custom_aliases_n_fns
Run Code Online (Sandbox Code Playgroud)
这运作良好,但我希望自动执行此文件来源。
有没有办法将 cd'ing 上的文件源到特定目录?
注意:我采用了这种方法,因为我不想更改系统范围的用户别名。
注意:我正在使用 Putty,并且我的 TERM 设置为 XTERM。
我已将颜色添加到我的 bash 提示中
PS1="\[\033[0;32m\]\d \t \u\e[1;33m@\H /\W $ \[\033[1;37m\]"
Run Code Online (Sandbox Code Playgroud)
只是为了用英文简化 PS1 -
${GREEN}\d \t \u{YELLOW}@\H \W $ {reset-color}
Run Code Online (Sandbox Code Playgroud)
现在,每当我的命令很长并且不适合屏幕行时,它应该转到下一行,但它不会并且初始字符开始被替换我键入的每个字符。整个命令都存在,但没有完全看到。它正常执行,所以只是显示失真。
当我回到第一个字符并尝试删除字符时,情况变得更糟,整个命令行向上移动并擦除屏幕上的先前数据。
经过一些试验和错误删除某些部分后,我发现添加 a@会导致上述行为
\e[1;33m
Run Code Online (Sandbox Code Playgroud)
我真的不记得为什么我放了这个,我无法追溯到这个。
你能帮我解决这个问题吗?长命令应该在下一行而不是在同一行。
Windows 驱动器在启动时使用pysdm 挂载。设置是
nls=iso8859-1,users,umask=002,sync,user,dirsync,uid=mtk
当我尝试使用 chmod 更改文件的权限时,我没有看到权限中有任何更新。Chmod 安静地返回提示。此外,创建的文件的权限必须是 755 而不是 775。这是终端的输出。
mtk@mtk-laptop$ umask
0022
mtk@mtk-laptop$ touch abc.txt
mtk@mtk-laptop$ ls -l abc.txt
-rwxrwxr-x 1 mtk root 0 May 14 00:00 abc.txt*
mtk@mtk-laptop$ chmod ugo-x abc.txt
mtk@mtk-laptop$ ls -l abc.txt
-rwxrwxr-x 1 mtk root 0 May 14 00:00 abc.txt*
mtk@mtk-laptop$
Run Code Online (Sandbox Code Playgroud)
有谁知道这背后的问题是什么?
我正在使用 ubuntu 12.04。
可能重复:
如何按大小对 du 输出进行排序?
我有一个从输出生成的文本文件
du --max-depth 1 -h > sizeOfHomeFolder.txt
Run Code Online (Sandbox Code Playgroud)
它的内容是这样的格式:
$ cat sizeOfHomeFolder.txt | head
776K ./Expensemanager
8.0K ./workspace
4.0M ./mysql-tutorial
3.6M ./temp
26M ./Desktop
4.0K ./Ubuntu One
4.0K ./Photos
4.0K ./Public
Run Code Online (Sandbox Code Playgroud)
我需要根据第一列即大小对这个文件进行排序。
如何使用sort或sed或任何其他常见的 Unix 实用程序执行此操作?
各种编辑器如gedit检测文件是否已更改并要求重新加载它。有时,vim当我有很多文件要编辑时,有时我最终会在不同的选项卡中打开相同的文件,以便快速查看其他文件和其他一些原因。
所以无论如何我可以在更新任何内容之前强制重新加载当前文件。
我知道一种选择是退出并重新打开它,但我已经拆分了屏幕,我不想失去该视图。
我知道一点autocmd并用它来做一些事情。目前,我有
au BufNewFile,BufRead *.inc set filetype=sql
au BufNewFile,BufRead *.tbl set filetype=sql
Run Code Online (Sandbox Code Playgroud)
阅读手册页,一般语法是
:autocmd [group] {events} {file_pattern} [nested] {command}
Run Code Online (Sandbox Code Playgroud)
我想知道,我是否可以将上述 2 条语句合并在一个行中,即我们如何在file_pattern部分中指定多个文件扩展名?手册页没有提到这一点,但我相信它可以用逗号或空格分隔。有什么提示吗?
可能重复:
使用脚本更改当前工作目录
我正在尝试创建一些脚本来更改主 shell/终端的工作目录。不能这样做。我尝试了以下
#!/bin/bash
cd /home/mtk/work/project1
Run Code Online (Sandbox Code Playgroud)
#!/bin/bash
cd /home/mtk/templates/resusable/sampleCodes
Run Code Online (Sandbox Code Playgroud)
但我知道,上面要改变它只是为自己,即在一个正在运行,这将是p1.sh或者code.sh在这种情况下。
请让我知道,我如何才能更改父调用 shell 的当前工作目录。
$ pwd
/home/mtk
$ p1.sh
$ pwd
/home/mtk ### --> Expected /home/mtk/work/project1
Run Code Online (Sandbox Code Playgroud)
我的用例是:我想做一些处理,然后将提示放置到预定义的目录中。
我明白为什么它不起作用。并且alias似乎是这种情况的解决方案。但我想扩大,我的问题:
我需要创建一个脚本来动态更改父 shell 的工作目录。脚本会说mycd.sh。它将具有命令行参数
mycd.sh -c/-p1/-p2/或其他一些用户定义的参数。
给予-c会将 shell 工作目录切换到相应的目录。文件mycd.sh看起来像
.. some processing
# parameter parsing
if [ $param1 -eq "c" ]; then
# change working dir of parent here
else
... other conditions
Run Code Online (Sandbox Code Playgroud)
我想,必须有某种方法可以更改 …
我syntax error near unexpected token done在执行我的 shell 脚本时得到:
while read filename
do
echo "$filename"
if [ -s $filename ]; then
tail -10 $filename | grep `date '+%Y-%m-%d'` >> $lastlines1
echo "- Next Error File - " >> $lastlines1
done
else
echo " no errrors"
fi
Run Code Online (Sandbox Code Playgroud)
任何想法,我哪里出错了?
我想将文件拆分为“n”个块,后缀的长度应为“a”,并且应使用从数字“d”开始的数字后缀。
例如 n = 10,a=4,d=5,因为所有选项看起来都是正确的,我尝试了以下方法
split -n10 -a4 -d5 somefile
split: cannot split in more than one way
Try 'split --help' for more information.
Run Code Online (Sandbox Code Playgroud)
它给出了上述错误。根据手册页,这些选项对我来说看起来不错
-a, --suffix-length=N
generate suffixes of length N (default 2)
-d, --numeric-suffixes[=FROM]
use numeric suffixes instead of alphabetic; FROM changes the start value (default 0)
-n, --number=CHUNKS
generate CHUNKS output files; see explanation below
Run Code Online (Sandbox Code Playgroud)
错误的原因可能是什么?我怎样才能实现既定目标?