【Linux-在gnome-terminal -x中运行bash函数】教程文章相关的互联网学习教程文章

linux – bash:基于第一列的grep完全匹配【代码】

我有一个.txt文件,如下所示:9342432_A1 9342432 1 0 0 0 4392483_A2 4392483 2 0 0 0 4324321_A3 4324321 1 0 0 0 9342432 9342432 2 0 0 0例如,我想生成ID为4324321_A3和9342432的子集(基于第一列!).我尝试了以下命令来查找完全匹配:grep -E '4324321_A3|9342432'但是当我使用这一行时,我最终会得到一个这样的数据集:9342432_A1 9342432 1 0 0 0 4324321_A3 4324321 1 0 0 0 9342432 9342432 2 0 0 0问题是匹配部分ID(...

linux – 更改cd默认目录(bash)【代码】

我正在寻找一种方法来改变cd的默认目录,我想知道这是否可行.我尝试添加alias "cd=cd ~/Documents/Github" 到.bashrc,但这显然不起作用,因为它打破了cd命令,因此除了转到该目录之外你不能使用cd.是否有一些导出我可以放入.bashrc来执行此操作?我不想更改我的主目录,只是默认目录cd转到.我问,因为我经常使用cd来更改我正在编程的默认目录,并且不希望每次我想要更改到目录?/ workspace时键入cd~ / workspace或cd然后cd工作区.解决方...

linux – bash中的日历计算【代码】

我想在bash中做一些日历操作 – 具体来说,我想弄清楚某个月的最后日期(包括闰年,并且为查找准备一个表对我来说不是一个有效的解决方案). 据说我有以下代码:$year=2009 $start_month=2 $end_month=10 for $month in $(seq $start_month $end_month); doecho "Last date of "$(date +"%B" -d "${year}-${month}-01")" is: " ??? done我无法弄清楚如何做这样的事情.我虽然日期-d会像POSIX mktime一样工作,并将无效日期折叠为有效的等...

linux – bash脚本中的错误替换错误【代码】

我已经尝试了很多,但无法从中获得解决方案.我有一个简单的脚本:#! /bin/sh o="12345" a=o b=${!a} echo ${a} echo ${b}执行时如$. scp.sh它生成正确的输出而没有错误,但执行时如:$./scp.sh它产生./scp.sh: 4: ./scp.sh: Bad substitution任何想法为什么会这样. 我被建议使用bash模式,它工作正常.但是当我通过Python执行相同的脚本(将脚本标题更改为bash)时,我得到了同样的错误. 我是用Python调用的:import os os.system(". ./sc...

linux – 如何通过计算AWK或bash中char的出现来过滤行?【代码】

输入是这样的:CNNCC NCNCN NNNCC CCNNN CCCCN输出应该是这样的:CNNCC CCCCN这意味着,如果N出现超过3次,那么该线将被过滤掉,否则就会被保留. (在我的工作中,我需要过滤掉超过500 N的100000行,因此性能可能很重要) 我知道如何在awk中按连续N进行过滤,但我不知道如何计算不连续的.. 有没有人有这个想法? shell中的解决方案也可以. 在所有答案中,我认为这可能是最简单的:awk -FN 'NF<=3'解决方法: awk -FN -vcount=3 'NF<=count'或...

linux – 使用Bash删除具有特定模式的行【代码】

我有一个文件,每行有一个单词/字符.例:a abandonado esta estabelecimento o onibus c casa police我需要删除具有特定模式的行(例如模式“esta”).我试着用awkcat file | awk '!/^esta/' 但是这个解决方案也删除了所有带有“esta”和“estabelecimento”模式的行.我只需要删除具有特定模式“esta”的行不符合“estabelecimento”. 带有图案“o”和“a”的线条也会出现同样的问题.该命令将删除所有以此模式开头的行.解决方法:使用g...

linux – Bash是编译还是解释?【代码】

当Bash运行你的脚本时,它是否将其解析为代码,还是将其解析为命令? Bash是否实际编译,并像Python一样运行您的脚本,或者Bash是否只是通过其命令解析器运行它?解决方法:Bash是一个单程解释器,这意味着它一次读取一个命令,然后解释并运行它.其他类型的shell也是如此 – sh,ksh,zsh,csh等. 这是一个例子.我有一个名为test.sh的3行脚本,如下所示:echo one echo two '当作为bash test.sh运行时,它给出了这个输出:one two test.sh: li...

linux – 删除bash中最后一个点的所有文本【代码】

我有一个名为test.txt的文件,其中包含:abc.cde.ccd.eed.12345.5678.txt abcd.cdde.ccdd.eaed.12346.5688.txt aabc.cade.cacd.eaed.13345.5078.txt abzc.cdae.ccda.eaed.29345.1678.txt abac.cdae.cacd.eead.18145.2678.txt aabc.cdve.cncd.ened.19945.2345.txt如果我想删除第一个之外的所有内容.喜欢:cde.ccd.eed.12345.5678.txt cdde.ccdd.eaed.12346.5688.txt cade.cacd.eaed.13345.5078.txt cdae.ccda.eaed.29345.1678.txt cd...

linux – Bash文件操作【代码】

什么是最好的方法(一条线,最好是使用头部和尾部)从文件中提取3-5和11-13行? 这完成了第一部分,但是如何在不弄乱的情况下抓住11-13?的xDhead -5 some_file | tail -3 > output_file解决方法:我认为sed可以很容易地做到这一点sed -n -e“3,5p”-e“11,13p”some_file>输出文件 -n告诉sed不要输出每一行. -e告诉sed要打印哪些部分.无法看到你如何用头部和尾部做到这一点:头部-5只给你前5行,所以你不能只把它管到尾部 – 你需要一个...

linux – 使用单个bash shell命令获取gb中的可用内存【代码】

以下命令以千字节为单位返回可用内存 cat / proc / meminfo | grep MemFree | awk{print $2}’ 有人可以建议使用单个命令来获取gb中的可用内存吗?解决方法:只需稍微修改一下你自己的魔法咒语:awk '/MemFree/ { printf "%.3f \n", $2/1024/1024 }' /proc/meminfoP.S.:亲爱的OP,如果你发现自己在调用grep& awk在一行中你最有可能做错了;} …与在单个文件上调用cat相同;这几乎没有必要.

linux – 从短划线字符中绘制一条水平线,占据bash中终端的整个宽度【代码】

我需要一个在终端中绘制水平“线”的命令.该行必须与终端的长度完全一致(无论当前终端宽度如何),并且由短划线字符组成(尽管也可以使用水平线的unicode符号). 它是否可以着色更好. 我需要像这样使用它:echo some text drawline echo more text输出看起来像这样:echo some text --------------------------------------------------------------------------------- echo more text解决方法:试试:echo some text printf '%*s\n' "...

linux – 如何在bash中从字符串中获取最后一个数字?【代码】

对不起,我会更好地解释一下 如何从字符串中获取最后一个数字? 泛型字符串的示例:If str=str1s2 echo $str | cmd? I get 2If str=234ef85 echo $str | cmd? I get 85If str=djfs1d2.3 echo $str | cmd? I get 3“CMD?”是我想要的命令/脚本解决方法:你需要的只是grep -Eo[0-9] $’:gv@debian:~$echo 234ef85 |grep -Eo '[0-9]+$' ## --> 85 gv@debian:~$echo 234ef856 |grep -Eo '[0-9]+$' ## --> 856 gv@d...

linux – bash:sudo:在debian jessie上找不到命令【代码】

我刚在笔记本电脑上安装了debian 8,当我尝试使用“sudo”时,它回复了 bash:sudo:找不到命令 我用的时候/usr/bin/sudo它回答说bash: /usr/bin/sudo: No such file or directory然后,当我尝试用’apt-get’安装它时,我得到了这个Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed:sudo 0 upgraded, 1 newly installed, 0 to remove...

linux – 当完成函数读取文件时,Bash完成有时会对我的终端进行网格化【代码】

所以我一直遇到一些cli程序的问题.有时当我使用Ctrl C终止正在运行的进程时,它会使终端处于奇怪的状态(例如,关闭回声).现在,在许多情况下都可以预料到,因为杀死一个进程并不能让它有机会恢复终端的状态.但我发现,对于许多其他情况,bash完成是罪魁祸首.例如,尝试以下操作: >按如下所示启动新的bash会话:bash –norc以确保不加载任何完成.>定义一个完成函数:_completion_test(){grep -q foo / dev / null;返回1; }.>定义使用上述函...

linux – 在ansible中使用bash数组元素计数操作【代码】

想知道这在ansible任务中是如何工作的?- shell: |y=(aa bb); echo "${#y[@]}"register: r目前它给出以下错误ERROR: There was an error while parsing the task ‘shell y=(aa bb); echo “${#y[@]}”\n’.Make sure quotes are matched or escaped properly那是因为角色’#’.我无法逃避它,因为否则这是一个无效的bash操作.如果我逃脱它,我得到:$ansible -c localhost -m shell -a 'y=(aa bb); echo "${\#y[@]}"' -i hosts.ini ...