首先,让我声明这是一个编程问题(因此不属于superuser等人),因为我说的是shell编程。这几乎可能是一个高尔夫问题,但我一开始没有答案,因此任何帮助都将不胜感激:-)
所以,故事是这样的:我喜欢用--quit if one screen选项将内容导入less,因为它非常舒适:less在不必要时不会妨碍我。还是这样?当我的提示已经出现在终端窗口的底部时,此选项完全符合我的要求(即less的行为类似于cat)。但是,当我的当前提示位于窗口顶部时,less首先打印大量空行以清除屏幕,然后在屏幕
我使用tcsh,当在cmd行上按下Delete/End时,它只显示为~;我必须按才能转到行尾。有谁能帮助我按照名字使用Delete/End键吗?您需要使用bindkey内置键。有关详细信息,请参见讨论(搜索“bindkey”),但您希望添加一行,如
bindkey [end] end-of-line
将“[end]”替换为实际的结束按键。有关绑定名称和有用示例的列表,请参阅。这些键已经在我的Debian系统上运行。我在/etc/csh.cshrc文件中找到了以下命令:
if ($?tcsh &
latex文件出现以下错误:
! LaTeX Error: File `datetime.sty' not found.
以下是Latex代码:\usepackage{datetime}
我错过什么了吗
我正在使用Debian 3.1 Linux机器。是的,您缺少datetime.sty文件;你可能也错过了整个包裹。您使用什么系统来管理(La)TeX安装?如果你告诉我们,你可能会得到比我更具体的建议
您需要从CTAN或其镜像之一获取datetime包,并将其安装到本地的texmf树中。你的乳胶
我有一个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非常粗糙,
我有一个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
我经常在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
如何确保在运行脚本时没有从父级继承的意外函数?如果使用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
我有一个平面文件,其中包含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(它不工作)
变量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
我不熟悉unixshell脚本
我需要帮助从字段中删除前导空格和尾随空格。但是我需要保留单词之间的空格
请查看下面的数据示例和所需结果,以了解我的问题
数据样本:
1-B48980007 |82984788|317 |ALQ| |4423271 | 0| |
I0000000000000000000245729|28887957|IL FR | | |00000000573| 0| |
我想我想使用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
我不熟悉shell脚本,我使用以下代码将文件的空格加倍(输入文件是一个参数):
问题是,如果原始文件的内容是:
Hi
My name is
我的双倍行距文件是:
Hi
My name is
Hi
My name is
是否需要在shell脚本中添加其他内容,以便我的文件仅为:
Hi
My name is
您使用的是append操作符(>),它附加到相关文件。也就是说,在bash中,您通常也不能使用对同一个文件进行操作和输出。对于sed的特定情况,您可以使用-i选项(取决于版本和平台):
我必须编写一个能够解释双引号的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
我怎样才能得到下列数字的和?它们在相加之前先被乘以
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(每行相乘,然后求和)
有什么想法吗
谢谢,
拉吉
这是我能想到的最好的解决方案,希望能有所
我正在尝试使用CakePHP shell从cron发送电子邮件,但收到以下错误“找不到套接字传输“ssl”-配置PHP时是否忘记启用它?:0”
问题只出现在本地服务器上,我使用的是WAMP服务器,php_openssl扩展已正确打开。当我检查扩展是否从控制器加载时,一切都正常,但当我调试shell操作时,扩展似乎没有加载。此外,当我尝试从控制器发送电子邮件时,电子邮件已成功发送。我使用的是gmail凭据,因此符合ssl要求
感谢找到的解决方案,似乎您必须取消注释在(wamp路径)\bin\php
我使用的是shell脚本,其中我使用的是awk脚本。我使用-v选项从shell脚本向awk传递参数。在某个时候,当参数大小超过某个限制时,我得到了“参数列表过长错误”。这是我之前的问题,但我已经找到了问题的根源。现在我的问题是:
要使用-v选项从shell传递到awk的变量=太大⟶ 因此,获取参数列表太长是一个错误
我的想法是将大变量分成小块并存储在数组中,然后将数组传递到awk中,而不是将单个变量传递到awk
我的问题是:
是否可以将大变量分解为小数组,然后将其传递回awk。我知道如何在aw
当我将vim外壳设置为交互式时会发生这种情况:
set shellcmdflag=-ic
或
我喜欢这些,因为它们为输出提供语法高亮显示(例如:!ls)
但代价是每次我都要输入fg#
这是默认行为吗
如何在vim中获得交互式shell而不必使其在前台运行?您不能。这种行为是完全正常的,符合Vim作者的哲学。这在未来是不太可能改变的
如果你想在Vim中安装一个shell,你必须安装一个插件,或者你不能安装。这种行为是完全正常的,符合Vim作者的哲学。这在未来是不太可能改变的
如果你想在Vim中安
我在使用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
outputshsuppress
我想使用以下方法将命令插入交互式环境:
bc <<END
1+1
quit
END
bc您可以将bc的输出重定向到/dev/null:
$ bc &>/dev/null <<END
1+1
quit
END
$bc&>/dev/null谢谢,这很有效。我的错误是,我试图将>/dev/null放在结尾之后。我会接受你的回答。老实说,我的第一次尝试也是这样:)
我正在尝试执行一个命令,但我需要获取一个命令行参数。我的问题是:
代码如下:
pl_function(){
node=$(echo "$1" | awk -F'\.' '{print $2}')
echo $node
}
我有一个案例陈述:
case "$1" in -pl.*)
pl_function
;;
esac
当我运行这个时,它会打印一个空白
此外,我还想包括getopts,以便不关心参数的顺序。假设我有-location后跟一个参数,-grep后跟一个参数,-def_l
如何以正确的方式在终端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
首先,我很抱歉这个标题可能不好,但我甚至不知道该怎么称呼它
我正在尝试以下方法:
#!/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
我在for循环中有一个Cat命令。for循环通过一堆文件夹
在我的代码中,我基本上注释掉了所有内容,除了cat命令和外部循环。一旦我注释掉循环,cat命令就可以工作了。当我删除cat命令以及其中的内容时,一切都正常
我得到的错误是:语法错误:意外的文件结尾。它总是指最后一行,在本例中为完成
#!/bin/sh
cd $HOME/filedirectory
for k in *; do
cat > $HOME/mongodb/bin/script1.js << EOF
需要在Linux和OS X的外壳中保留已输出到屏幕的内容(即标准输出)的副本。如果可以保留彩色文本,则效果更好。使用菜单命令Shell>将文本导出为…
您还可以使用Unixscript命令在发生时自动保存所有内容。通过tee()运行您的命令:
这将输出到屏幕和tee命令行上指定的文件,并将在任何终端会话中工作(即ssh,而不仅仅是terminal.app)。我现在不在Mac上,但您不能执行类似cmd+s的操作吗?我知道它能保存一些东西,但我不确定它能保存什么。我正要回答这个问题,但我不确定是否有
我如何使用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
我有一个文件,其中包含全球约23000个城市的以下信息:
人口:国家代码:城市:大陆
20470:ZM:Samfya:Africa
20149:ZM:Sesheke:Africa
18638:ZM:Siavonga:Africa
26459:ZW:Beitbridge:Africa
37423:ZW:Bindura:Africa
699385:ZW:Bulawayo:Africa
47294:ZW:Chegutu:Africa
61739:ZW:Chinhoyi:Africa
18860:ZW:
“我的文件夹”中的所有文件的名称如下:
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
我有一个文本文件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
我希望两个单元格都可以在单个
文件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
stdout Zsh
race-conditionio-redirection
我试图调用一个脚本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
我有一个数据文件,它有许多行和列。我想随机删除第二列中包含数字“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脚本,我正在尝试从shell脚本运行以下命令
diff <(ssh user@remote_host 'cat remote_file.txt') <(ssh user2@remote_host2 'cat remote_file2.txt')
我通过谷歌搜索尝试了一些例子,上面说在代码中使用$(),但是没有用。请任何人帮我解决这个问题。我知道您想使用“diff”中两个远程文件的输出。您的解决方案中存在许多错误:
不能将两个输出流重定向到一个输入流
diff只
我有一个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
我尝试在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错误
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和命令行工具。
我安装了一个命令行工具来控制终端中iMac的亮度。我安装了以下软件:
安装后,我注意到/usr/local/bin/中有一个名为“brightness”的新exec文件
互联网告诉我,applescript只知道在/bin/sh中找到的命令行。在那里找不到“亮度”,我无法将exec文件复制到此目录。因此,当执行以下applescript:
do shell script "brightness 0.7"
现在的大问题是,为了让shell命令正常工
我找到了不同的解决方案来获得sh脚本自己的路径,但是没有一个能通过在纯posixsh中工作。
到目前为止,我的解决方案是:
dirname $(readlink -f $0)
在sh中工作,但提供父脚本的路径,因为$0依赖于进程(见上文)
这显然是bash唯一的解决方案
证明此解决方案不起作用:
$ tree --noreport
.
├── script1.sh
└── src
└── script2.sh
$ cat script1.sh
#!/bin/sh
. src/scr
据我所知,我将二进制文件链接到/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
我有一个长文件,我需要一个宽文件,我知道在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[
我不确定这是否是一个愚蠢的问题,但如果我不知道我的命令设置是什么,而不必打开我的.zshrc(我显然使用的是zsh),我会经常遇到sinario
例如,让我们使用gs。我不确定以下哪个gs将执行:
alias gs=“git status”
或别名gs=“大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口
或alias gs=“grunt serve”
是否有一个命令或类似于echo gs,“$(gs)”或echo“$(gs)
在类似Unix的shell中,在哪里可以找到命令的手册页?
它被列出了,但是没有人给它
具体来说,-v开关在此命令中执行什么操作:
command-vls>/dev/null&&export EDITOR='vim'您可以通过键入help命令获得一些信息。由于它是一个内置的,您可以在manbash中找到它您可以通过键入help命令来获得一些信息。因为它是一个内置的,所以您可以在manbash中找到它,如下所示:
使用参数运行命令,忽略名为command的任何shell函数。仅执行shell内置命
有没有可能分解一个长的#!将shell-p行转换为多行
例如:
#!/usr/bin/env nix-shell
#! nix-shell -p "haskell.packages.ghc822.ghcWithPackages (p: with p; [lens text bytestring hspec brick async])"
#! nix-shell -i "runghc"
{-# language OverloadedStrings #-}
import D
我有一个非常大的文件,它只由一行组成(根本没有CR)。
我有几次出现相同的模式(假设在这里,模式是ABCDE)。
我想返回此模式第一次出现的第一个字符的起始位置或起始列
例如,如果这是文件中的数据:
123456ABCDEF456987ABCDEFjhkhkhkhABCDEF
我想返回7作为模式第一次出现的起始列
感谢社区:-)使用“拆分”的“C”选项,这样以后就不需要修复文件了
-C, --line-bytes=SIZE
put at most SIZE bytes
我有一个脚本,用于调用需要用户输入的应用程序,例如运行需要用户输入“Y”或“N”的应用程序。
如何让shell脚本不要求用户输入,而是使用脚本中预定义变量的值
在我的例子中,有两个问题需要输入。你可以在stdin上输入你想输入的任何文本,这与让用户自己输入一样。例如,要模拟键入“Y”,只需使用:
echo "Y" | myapp
或者使用shell变量:
echo $ANSWER | myapp
还有一个名为“yes”的unix命令,它会输出一个连续的“y”流,用于那些提出了许多您只想肯定回
如果我像上面那样调试,我将得到以下输出:
register: dnsfact
- debug: var=dnsfact.ansible_facts.azure_dnszones[0].name
debug:var=dnsfact.ansible\u facts.azure\u dnszones[1]。name>这将给我两个值
debug:var=dnsfact.ansible\u facts.azure\u dnszones[2]。name>这将给我三个值
如果要打印所有值,需要传递哪个
我想知道是否可以通过配置单元访问shell中的hiveconf变量
例如:
设置hivevar:DIR='scripts'
如果我直接键入:
!sh ls-l脚本:
该目录中的输出将被打印
然而,!sh ls-l${DIR}导致
ls:无法访问${DIR}:没有这样的文件或目录
我怀疑这是因为变量是一个配置单元变量,当您运行!sh命令它不识别${}语法。是否可以在hql脚本中定义一个变量,然后在中使用它命令?它工作正常。从变量中删除单引号。也不要在之后写入sh:
让我们在其中创建目录和文件:
$
通过调用manascii,我可以从shell中显示7位ASCII表,同样的方法,有没有办法从shell中获取8位扩展ASCII表?(我正在使用BSD Unix版本。):“有许多扩展ASCII编码(超过220个DOS和Windows代码页)。”您想要哪一个?没有一个8位扩展ASCII字符集;相反,根据字符集要支持的语言不同,有许多版本有不同的版本。据我所知,在任何标准发行版中都没有任何一个版本的手册页。这可能让我很高兴——大概是这样吧:我正在用法语从旧的Macintosh(OS 9)检索数据。@N
我有一个文本文件(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:当前输入记录中的字段数
请参阅:根据所显示的示例,尝试以下操作一次。我们只能使用一次打印,在这里用新行打
我想在一个golang文件中运行一个shell脚本(大约75行)
go文件除了执行shell脚本(它必须是go文件:)之外,没有其他事情可做
我运行的代码如下:
go文件:
package main
import (
"fmt"
// "os"
"os/exec"
)
func main() {
out:= Native()
fmt.Println(out)
}
func Native() st
我想写一行字,开头是字母表,后面是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 页