Shell 根据长度将命令输出导入less或cat

首先,让我声明这是一个编程问题(因此不属于superuser等人),因为我说的是shell编程。这几乎可能是一个高尔夫问题,但我一开始没有答案,因此任何帮助都将不胜感激:-) 所以,故事是这样的:我喜欢用--quit if one screen选项将内容导入less,因为它非常舒适:less在不必要时不会妨碍我。还是这样?当我的提示已经出现在终端窗口的底部时,此选项完全符合我的要求(即less的行为类似于cat)。但是,当我的当前提示位于窗口顶部时,less首先打印大量空行以清除屏幕,然后在屏幕

如何在tcsh shell上映射Delete和End键?

我使用tcsh,当在cmd行上按下Delete/End时,它只显示为~;我必须按才能转到行尾。有谁能帮助我按照名字使用Delete/End键吗?您需要使用bindkey内置键。有关详细信息,请参见讨论(搜索“bindkey”),但您希望添加一行,如 bindkey [end] end-of-line 将“[end]”替换为实际的结束按键。有关绑定名称和有用示例的列表,请参阅。这些键已经在我的Debian系统上运行。我在/etc/csh.cshrc文件中找到了以下命令: if ($?tcsh &

Shell 在Tex文件中包括日期和时间

latex文件出现以下错误: ! LaTeX Error: File `datetime.sty' not found. 以下是Latex代码:\usepackage{datetime} 我错过什么了吗 我正在使用Debian 3.1 Linux机器。是的,您缺少datetime.sty文件;你可能也错过了整个包裹。您使用什么系统来管理(La)TeX安装?如果你告诉我们,你可能会得到比我更具体的建议 您需要从CTAN或其镜像之一获取datetime包,并将其安装到本地的texmf树中。你的乳胶

Shell 从CSS中提取ID

我有一个CSS文件,里面有很多条目,比如 #id1, #id2, #id3, #id4 { ... } #id3, #id2 { ... } #id2, #id4 { ... } 我想使用命令行工具(msys)提取唯一ID的列表。 “唯一”是指列表中的任何条目仅显示一次。怎么做 PS:我知道如何使用python,但是awk/sed/cat呢?试试这个 cat file.css | grep -o '#[a-zA-Z0-9-]*' | sort -u 编辑:不幸的是,这个regexp非常粗糙,

从子shell运行shell命令

我有一个unixshell脚本test.sh。在脚本中,我希望调用另一个shell,然后从子shell执行shell脚本中的其余命令并退出 为了说明这一点: test.sh #/bin/bash /bin/bash/*创建子shell*/ ...... 出口0 我的意图是从子shell运行shell-commands1到shell-commandN。请告诉我如何执行此操作,下面是一个示例: #!/bin/bash # subshell-test.sh ( # Inside parenthes

Shell Unix ls命令:使用选项时显示完整路径

我经常在Unix(AIX/KSH)中使用此list命令: ls-Artl 它按如下方式显示文件: -rw-r--r--1 myuser mygroup 0 Apr 2 11:59 test1.txt -rw-r--r--1 myuser mygroup 0 Apr 2 11:59 test2.txt 我想修改命令,以便显示文件的完整路径。例如: -rw-r--r--1 myuser mygroup 0 Apr 2 11:59/usr/test1.txt -rw-r--r--1 myuser my

Shell 如何删除sh(posix)中的继承函数

如何确保在运行脚本时没有从父级继承的意外函数?如果使用bash #!/bin/bash -p #!/bin/bash-p 将完成这项任务,通过env-i调用脚本也是如此。但是我不能依赖用户来调用env,我不想依赖bash,我不想执行exec hack并重新执行脚本,以及 #!/usr/bin/env -i sh #!/usr/bin/env-i sh 不起作用 因此,我正在寻找一种可移植的方法(portable==posix),以确保用户没有定义会意外修改脚本行为的函数。我目前的解决办法是: e

Shell 通过删除文件末尾的新行字符来创建新文件

我有一个平面文件,其中包含H:和T之间的以下数据记录: H:20050427 HEADER RECORD 0000000 00000 000000000 123456 00 654321 DATARECORD 0000000 00000 000000000 123456 00 654321 DATARECORD 0000000 00000 000000000 123456 00 654321 DATARECORD 0000000 00000 000000000 123456 00 654321

在makefile中调用外部shell脚本以设置变量

看看下面的makefile(它不工作) 变量DB\u USER和DB\u PASS在单独的外部文件conf.sh中定义,如下所示: export DB_USER=<username> export DB_PASS=<password> 导出数据库用户= 导出DB_通行证= 然后在子目录中的makefile中需要这些文件 如果我运行。命令行上的conf.sh,然后调用make,然后为USER和PASS分配正确的值,编译就完成了。但是我希望在makefile中调用conf

使用shell脚本从管道分隔文件中的字段中删除空格

我不熟悉unixshell脚本 我需要帮助从字段中删除前导空格和尾随空格。但是我需要保留单词之间的空格 请查看下面的数据示例和所需结果,以了解我的问题 数据样本: 1-B48980007 |82984788|317 |ALQ| |4423271 | 0| | I0000000000000000000245729|28887957|IL FR | | |00000000573| 0| |

Shell 使用VBScript以编程方式重命名文件编号

我想我想使用VBScript,但我可以使用批处理文件 我想重命名一些文件,这些文件的名称如下: Season (1) Season (2) ..snip.. Season (9) Season (10) Season (11) Season (12) Set objFso = CreateObject("Scripting.FileSystemObject") Set objFolder = objFso.GetFolder("C:\test") For i = 1 To 15 st

使用sed-in-shell脚本的双间距文件

我不熟悉shell脚本,我使用以下代码将文件的空格加倍(输入文件是一个参数): 问题是,如果原始文件的内容是: Hi My name is 我的双倍行距文件是: Hi My name is Hi My name is 是否需要在shell脚本中添加其他内容,以便我的文件仅为: Hi My name is 您使用的是append操作符(>),它附加到相关文件。也就是说,在bash中,您通常也不能使用对同一个文件进行操作和输出。对于sed的特定情况,您可以使用-i选项(取决于版本和平台):

我的shell必须解释双引号

我必须编写一个能够解释双引号的shell。 我已经写了一个基本的shell #include <stdio.h> #include <stdlib.h> #include <unistd.h> int main () { int i; char * ligne; char *tokens[100]; ligne=(char*)malloc(300); printf("$ "); fgets(ligne,256,stdin); while (st

在Shell脚本中添加一些数字?

我怎样才能得到下列数字的和?它们在相加之前先被乘以 Input File (count.txt) 2*4 2*1 3*1 3*1 2*1 2*1 Command I am using: ( echo 0 ; sed 's/$/ +/' count.txt; echo p ) | dc. 我得到的总数是343,这是不正确的。我希望总共20英镑 2*4 2*1 3*1 3*1 2*1 2*1 求和:20(每行相乘,然后求和) 有什么想法吗 谢谢, 拉吉 这是我能想到的最好的解决方案,希望能有所

找不到套接字传输“;ssl";,CakePHP从shell发送电子邮件

我正在尝试使用CakePHP shell从cron发送电子邮件,但收到以下错误“找不到套接字传输“ssl”-配置PHP时是否忘记启用它?:0” 问题只出现在本地服务器上,我使用的是WAMP服务器,php_openssl扩展已正确打开。当我检查扩展是否从控制器加载时,一切都正常,但当我调试shell操作时,扩展似乎没有加载。此外,当我尝试从控制器发送电子邮件时,电子邮件已成功发送。我使用的是gmail凭据,因此符合ssl要求 感谢找到的解决方案,似乎您必须取消注释在(wamp路径)\bin\php

将参数作为数组从shell传递到awk

我使用的是shell脚本,其中我使用的是awk脚本。我使用-v选项从shell脚本向awk传递参数。在某个时候,当参数大小超过某个限制时,我得到了“参数列表过长错误”。这是我之前的问题,但我已经找到了问题的根源。现在我的问题是: 要使用-v选项从shell传递到awk的变量=太大⟶ 因此,获取参数列表太长是一个错误 我的想法是将大变量分成小块并存储在数组中,然后将数组传递到awk中,而不是将单个变量传递到awk 我的问题是: 是否可以将大变量分解为小数组,然后将其传递回awk。我知道如何在aw

Shell vim中任何命令的执行都会导致其挂起

当我将vim外壳设置为交互式时会发生这种情况: set shellcmdflag=-ic 或 我喜欢这些,因为它们为输出提供语法高亮显示(例如:!ls) 但代价是每次我都要输入fg# 这是默认行为吗 如何在vim中获得交互式shell而不必使其在前台运行?您不能。这种行为是完全正常的,符合Vim作者的哲学。这在未来是不太可能改变的 如果你想在Vim中安装一个shell,你必须安装一个插件,或者你不能安装。这种行为是完全正常的,符合Vim作者的哲学。这在未来是不太可能改变的 如果你想在Vim中安

Shell 文件中出现了双引号

我在使用awk时遇到问题。实际上我有两种类型的文件。下面是文件的内容 文件1 文件2 我必须使用awk从第二列中搜索一些值。但问题是file1的记录没有引号,而file2的记录有双引号。我需要创建一个逻辑来搜索第二列中的值 有人能帮忙吗?只要用sed的//\“//g'过滤掉引号,然后用将它们传送到awk即可 $ sed 's/\"//g' file2 x|y|z|a|b|c x|y|z|a|b|c x|y|z|a|b|c 你的最终结果会是 $ sed 's/\"//g' file2 | awk

Shell 使用<;时抑制sh脚本输出&书信电报;结束

我想使用以下方法将命令插入交互式环境: bc <<END 1+1 quit END bc您可以将bc的输出重定向到/dev/null: $ bc &>/dev/null <<END 1+1 quit END $bc&>/dev/null谢谢,这很有效。我的错误是,我试图将>/dev/null放在结尾之后。我会接受你的回答。老实说,我的第一次尝试也是这样:)

Shell 命令行参数与case语句参数

我正在尝试执行一个命令,但我需要获取一个命令行参数。我的问题是: 代码如下: pl_function(){ node=$(echo "$1" | awk -F'\.' '{print $2}') echo $node } 我有一个案例陈述: case "$1" in -pl.*) pl_function ;; esac 当我运行这个时,它会打印一个空白 此外,我还想包括getopts,以便不关心参数的顺序。假设我有-location后跟一个参数,-grep后跟一个参数,-def_l

我刚开始学习用Shell脚本RHEL6.3编写脚本

如何以正确的方式在终端RHEL 6.3中写入 如果不存在LOCAL\u WORKING\u DIRLOCAL\u EVENT\u LOG\u WORKING\u DIR mkdir LOCAL\u WORKING\u DIR LOCAL\u EVENT\u LOG\u WORKING\u DIR 我试过这个,但似乎不起作用 我的剧本: if [! -f ] $LOCAL_WORKING_DIR $LOCAL_EVENT_LOG_WORKING_DIR mkdir $LOCAL_WORKI

shell脚本中变量名的使用

首先,我很抱歉这个标题可能不好,但我甚至不知道该怎么称呼它 我正在尝试以下方法: #!/bin/sh VAR1="28-00000202070c" VAR2="28-0000018776d3" VAR3="28-0000033a6174" for sensor in VAR1 VAR2 VAR3 do echo "$sensor: $$sensor" done 预期产出将是: VAR1:28-00000 202070C VAR2:28-00000 18776D3 VAR3:28-0000

Shell Cat命令不在循环中工作

我在for循环中有一个Cat命令。for循环通过一堆文件夹 在我的代码中,我基本上注释掉了所有内容,除了cat命令和外部循环。一旦我注释掉循环,cat命令就可以工作了。当我删除cat命令以及其中的内容时,一切都正常 我得到的错误是:语法错误:意外的文件结尾。它总是指最后一行,在本例中为完成 #!/bin/sh cd $HOME/filedirectory for k in *; do cat > $HOME/mongodb/bin/script1.js << EOF

如何将shell屏幕保存为详细文件?

需要在Linux和OS X的外壳中保留已输出到屏幕的内容(即标准输出)的副本。如果可以保留彩色文本,则效果更好。使用菜单命令Shell>将文本导出为… 您还可以使用Unixscript命令在发生时自动保存所有内容。通过tee()运行您的命令: 这将输出到屏幕和tee命令行上指定的文件,并将在任何终端会话中工作(即ssh,而不仅仅是terminal.app)。我现在不在Mac上,但您不能执行类似cmd+s的操作吗?我知道它能保存一些东西,但我不确定它能保存什么。我正要回答这个问题,但我不确定是否有

Shell Unix脚本以查找特定变量并将第三项更改为新变量

我如何使用sed/egrep命令来检查文件中的名字和姓氏,然后只更改电话号码 从shell变量中设置awk变量,然后将它们与awk脚本中的列进行比较 function change { echo "Please enter the LAST name of the person: " read changelast echo "Please enter the FIRST name of the person: " read changefirst echo "Please

Shell 如何增加文件名中的数字

“我的文件夹”中的所有文件的名称如下: aodv-0-0.pcap aodv-1-0.pcap aodv-2-0.pcap aodv-3-0.pcap 等 是否有机会将其重命名为: 1.pcap 2.pcap 3.pcap 4.pcap aodv-0-0------->1 aodv-1-0------->2 等 我尝试使用“重命名”,但我不知道如何增加文件名中的数字 使用后,我得到: aodv-0-0.pcap ---> 0-0.pcap (and i need 1.pca

Shell 使用分隔符剪切时获取第一个和最后一个引用的步骤

我有一个文本文件a.txt,其中包含以下数据 abc/def/ghi jkl/mno/pqr/stu 我需要剪切它们,以便得到第一个和最后一个以“/”作为分隔符的字符串 预期产量为 abc ghi jkl stu cat a.txt |cut -d "/" -f1 #gives me first cell cat a.txt |rev |cut -d "/" -f1 |rev #gives me last cell 我希望两个单元格都可以在单个

Shell 使用awk\unix比较两个.csv文件

文件1: 文件2: SA, 5006, 12, , DJ CN, BN, , BBB, 13 22, 67, GG, FF, 88 33, BB, AA, CC, 22 输出: SA, 5006, 12, 15 , DJ CN, BN, , BBB, 13 empty line 33, CC, AA, dd, 22 我需要逐行比较两个.csv文件,但某些字段/行可能为空,输出应在文件3中: 5列组成文件2,匹配\取消匹配,取消匹配字段如下: SA, 5006, 12, 15 , DJ, un

Shell 脚本和下标之间的标准输出竞争条件

我试图调用一个脚本deepScript并在另一个脚本shallowScript中处理其输出;它在示意图上类似于以下几段代码: shallowScript.sh #!/bin/zsh exec 1> >( tr "[a-z]" "[A-Z]" ) print "Hello - this is shallowScript" . ./deepScript.sh #!/bin/zsh print "Hello - this is deepScript" #!/bin/zsh print

使用shell删除特定列中包含特定字符串的50%行

我有一个数据文件,它有许多行和列。我想随机删除第二列中包含数字“2”的50%的行。如何在shell脚本中执行此操作?我的文件如下所示: 264 2 -1.2000000000000000e+00 7.0825130926872939e+00 9.5601084339752944e+00 7.2651799153974066e+00 245 4 2.3999999999999999e+00 3.2314933672268427e+00 8.1060222635488888e+00 4.93009

从shell脚本运行ssh命令

我不熟悉shell脚本,我正在尝试从shell脚本运行以下命令 diff <(ssh user@remote_host 'cat remote_file.txt') <(ssh user2@remote_host2 'cat remote_file2.txt') 我通过谷歌搜索尝试了一些例子,上面说在代码中使用$(),但是没有用。请任何人帮我解决这个问题。我知道您想使用“diff”中两个远程文件的输出。您的解决方案中存在许多错误: 不能将两个输出流重定向到一个输入流 diff只

Shell 如果配置单元失败,请停止Bash脚本

我有一个bash脚本,它在文件夹中循环并处理所有*.hql文件。有时一个配置单元脚本失败(语法、资源约束等),而不是脚本失败,它将继续到下一个.hql文件 无论如何,我可以阻止bash处理剩余的?下面是我的示例bash: for i in `ls ${layer}/*.hql`; do echo "Processing $i ..." hive ${hiveconf_all} -hiveconf DATE=${date} -f ${i} & if [ $j

Shell cryptsetup luksFormat错误:请求的偏移量超出设备/dev/loop1的实际大小

我尝试在Ubuntu上运行cryptsetup luksFormat命令时出错。有人能帮我解决这个问题吗 命令: $loop\u dev=losetup--find $echo YES | cryptsetup-v luksFormat--key file=“/path/to/keyfile”$loop\u dev 错误: 请求的偏移量超出了设备/dev/loop1的实际大小。 命令失败,代码为22:请求的偏移量超出设备/dev/loop1的实际大小 这发生在/dev/loop0-/dev/lo

意外标记附近的语法错误';elif';shell脚本

我在意外标记附近遇到语法错误,下面代码的elif错误 if [ "$1" == "abc" ]; then echo "abc" elif [ "$1" == "xyz" ]; then echo "xyz" else echo "Unkown parameter" exit 0 fi 错误是: abc.sh:第28行:意外标记附近的语法错误elif' abc.sh:第28行:elif[“$1”==“xyz”];然后代码似乎没问题,但我想添加的唯一一点

applescript do shell命令;“未找到命令”;

我不熟悉applescript和命令行工具。 我安装了一个命令行工具来控制终端中iMac的亮度。我安装了以下软件: 安装后,我注意到/usr/local/bin/中有一个名为“brightness”的新exec文件 互联网告诉我,applescript只知道在/bin/sh中找到的命令行。在那里找不到“亮度”,我无法将exec文件复制到此目录。因此,当执行以下applescript: do shell script "brightness 0.7" 现在的大问题是,为了让shell命令正常工

Shell 如何获取sh脚本’;s自己的路径,即使通过``

我找到了不同的解决方案来获得sh脚本自己的路径,但是没有一个能通过在纯posixsh中工作。 到目前为止,我的解决方案是: dirname $(readlink -f $0) 在sh中工作,但提供父脚本的路径,因为$0依赖于进程(见上文) 这显然是bash唯一的解决方案 证明此解决方案不起作用: $ tree --noreport . ├── script1.sh └── src └── script2.sh $ cat script1.sh #!/bin/sh . src/scr

Shell 鱼壳、$PATH和符号链接二进制文件

据我所知,我将二进制文件链接到/usr/bin,如下所示: sudo ln -s ~/Applications/calibre.app/Contents/MacOS/ebook-convert /usr/bin 现在符号链接已经存在,/usr/bin显然位于$PATH中: cls@clsmba > ls -lah /usr/bin/ebook-convert lrwxr-xr-x 1 root wheel 64B Jul 18 13:00 /usr/bin/ebo

Shell 使用linux命令(awk)将长文件转换为宽文件

我有一个长文件,我需要一个宽文件,我知道在R中这样做,但我想使用Linux,因为它更快。字段分隔符为tab 输入文件 1 C C 1 G G 1 C G 2 G G 2 C C 2 C G 3 G G 3 C C 3 C C 输出文件: 1 2 3 CC GG GG GG GG CC CG CG CC 谢谢你营救我 假设数据一致(每个键的元素数相同) $awk'{k[$1];a[$1,++c[

有时我';I’我想在执行前知道我的shell别名/函数是什么。我可以记录它们而不执行它们吗?

我不确定这是否是一个愚蠢的问题,但如果我不知道我的命令设置是什么,而不必打开我的.zshrc(我显然使用的是zsh),我会经常遇到sinario 例如,让我们使用gs。我不确定以下哪个gs将执行: alias gs=“git status” 或别名gs=“大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口 或alias gs=“grunt serve” 是否有一个命令或类似于echo gs,“$(gs)”或echo“$(gs)

Shell Unix命令的手册页:`command';

在类似Unix的shell中,在哪里可以找到命令的手册页? 它被列出了,但是没有人给它 具体来说,-v开关在此命令中执行什么操作: command-vls>/dev/null&&export EDITOR='vim'您可以通过键入help命令获得一些信息。由于它是一个内置的,您可以在manbash中找到它您可以通过键入help命令来获得一些信息。因为它是一个内置的,所以您可以在manbash中找到它,如下所示: 使用参数运行命令,忽略名为command的任何shell函数。仅执行shell内置命

Shell 查找文件中第一个出现的子字符串的位置

我有一个非常大的文件,它只由一行组成(根本没有CR)。 我有几次出现相同的模式(假设在这里,模式是ABCDE)。 我想返回此模式第一次出现的第一个字符的起始位置或起始列 例如,如果这是文件中的数据: 123456ABCDEF456987ABCDEFjhkhkhkhABCDEF 我想返回7作为模式第一次出现的起始列 感谢社区:-)使用“拆分”的“C”选项,这样以后就不需要修复文件了 -C, --line-bytes=SIZE put at most SIZE bytes

来自shell脚本内的输入

我有一个脚本,用于调用需要用户输入的应用程序,例如运行需要用户输入“Y”或“N”的应用程序。 如何让shell脚本不要求用户输入,而是使用脚本中预定义变量的值 在我的例子中,有两个问题需要输入。你可以在stdin上输入你想输入的任何文本,这与让用户自己输入一样。例如,要模拟键入“Y”,只需使用: echo "Y" | myapp 或者使用shell变量: echo $ANSWER | myapp 还有一个名为“yes”的unix命令,它会输出一个连续的“y”流,用于那些提出了许多您只想肯定回

在shell中访问hiveconf变量

我想知道是否可以通过配置单元访问shell中的hiveconf变量 例如: 设置hivevar:DIR='scripts' 如果我直接键入: !sh ls-l脚本: 该目录中的输出将被打印 然而,!sh ls-l${DIR}导致 ls:无法访问${DIR}:没有这样的文件或目录 我怀疑这是因为变量是一个配置单元变量,当您运行!sh命令它不识别${}语法。是否可以在hql脚本中定义一个变量,然后在中使用它命令?它工作正常。从变量中删除单引号。也不要在之后写入sh: 让我们在其中创建目录和文件: $

我可以显示shell中的扩展ASCII手册页吗?

通过调用manascii,我可以从shell中显示7位ASCII表,同样的方法,有没有办法从shell中获取8位扩展ASCII表?(我正在使用BSD Unix版本。):“有许多扩展ASCII编码(超过220个DOS和Windows代码页)。”您想要哪一个?没有一个8位扩展ASCII字符集;相反,根据字符集要支持的语言不同,有许多版本有不同的版本。据我所知,在任何标准发行版中都没有任何一个版本的手册页。这可能让我很高兴——大概是这样吧:我正在用法语从旧的Macintosh(OS 9)检索数据。@N

Shell 在awk中,如何在打印$2时忽略错误行,但错误行中不存在$2

我有一个文本文件(xxx.txt),格式如下: kw1 kw2 kw3 kw4 kw1 kw2 kw3 kw4 ... 但有时,线路不正常,如下所示: kw1 我的shell命令是 cat xxx.txt|awk '{ print $2;print $3}' 如何忽略异常行并继续打印?我建议: awk 'NF>=3{print $2;print $3}' xxx.txt NF:当前输入记录中的字段数 请参阅:根据所显示的示例,尝试以下操作一次。我们只能使用一次打印,在这里用新行打

如何在go文件中执行shell脚本?

我想在一个golang文件中运行一个shell脚本(大约75行) go文件除了执行shell脚本(它必须是go文件:)之外,没有其他事情可做 我运行的代码如下: go文件: package main import ( "fmt" // "os" "os/exec" ) func main() { out:= Native() fmt.Println(out) } func Native() st

Shell 如何grep一行以单引号开头,字母表后跟固定数字?

我想写一行字,开头是字母表,后面是5个数字 我的方法是 乙二醇 #PCRE允许\xHH转义 $grep-P'^\x27[A-Z][0-9]{5}\x27'ip.txt “A12345” #这里也可以使用双引号,因为没有冲突 $grep-E“^'[A-Z][0-9]{5}'”ip.txt “A12345” #这与^'后跟[A-Z][0-9]{5}和另一个' $grep-E“^'”[A-Z][0-9]{5}'”'ip.txt “A12345” 下面是一个双引号可能有问题的示例。有关更多详细信息,请

  1    2   3   4   5   6  ... 下一页 最后一页 共 241 页