我有myfile如下
test1
test2
test3
test4
test5
Run Code Online (Sandbox Code Playgroud)
我想删除包含test2的行,所以我使用了如下命令,但不是只删除'test2'行,而是删除整个文件,fize-size变为零.
bash# cat /aaa/bbb/ccc/myfile | sed -e '/test2/ d' > /aaa/bbb/ccc/myfile
bash# ls -l total 0
-rw-r--r-- 1 root root 0 3? 11 17:41 myfile
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议,命令错了吗?
我有两个过程:
第一个过程,我运行:./ Vlc视频>> resu.txt它给我一个输出文件resu.txt
第二个进程是一个脚本,它对文件resu.txt进行计算.这个脚本的名称是calcule.sh,我运行它:/ Calcul.sh
我想同时运行两个进程.即具有两个并行的过程.
我如何并行运行两个进程(./ Vlc视频>> resu.txt和./ Calcul.s).有没有这样做的命令?拜托,你能给我一个能做到这一点的代码
提前感谢您的回答.
我对这个脚本的一致性有点问题.您可以运行一次,没有任何问题.但是,如果您立即将其重新加载并再次运行,则它不会正确获取变量,因为输出未以正确的方式写入文件.
例如:此实用程序旨在实质上更新4个文件..temp,.tiers,.version和.sync在通过对话框提示的各个阶段,它会更新文件.我的问题是,有时它没有更新文件,我找不到任何原因,因为它只是在你已经运行一次之后.我在启动时擦除文件,所以我不确定这笔交易是什么.它就像它只是从记忆中抓取它?
无论如何,为了测试这个,你需要/ test中的以下文件
感谢任何能给我一些指导的人.
cat .tiers
Stable=1
Release=2
Beta=3
Run Code Online (Sandbox Code Playgroud)
码:
#!/usr/bin/env bash
touch .version
touch .temp
VERSION=`cat .version`
DIR=/test/
STORED=`cat ${DIR}/.temp`
################################
# REARRANGE TIERS #
################################
rearrange()
{
start
end
}
################################
# SYNC FILE EXISTS #
################################
sync_exists()
{
dialog --msgbox ".sync exists in the directory $(echo ${VERSION}).\n\n Use Tier Move instead." 10 40
clean_up
exit 1;
}
################################
# CLEAN UP #
################################
clean_up()
{
rm -rf .version
rm -rf .update
rm -rf .temp
}
################################ …Run Code Online (Sandbox Code Playgroud) 我尝试使用cut命令从"ls -l"命令输出中获取文件名及其大小的列表.
$ ls -l | cut -f 5,9 -d " "
Run Code Online (Sandbox Code Playgroud)
它给出了基于'SINGLE WHITE SPACE'作为分隔符的输出.当"ls -l"输出在某些行中包含连续的空格时,该命令的输出不适合这些行.只有一个空格作为列分隔符的行给出正确的输出.
当我运行以下命令时:
$ ls -l | awk '{ print $5"\t"$9 }'
Run Code Online (Sandbox Code Playgroud)
awk忽略多个空格并从"ls -l"输出中正确提取列.虽然,cut将每个空格视为分隔符,但是将值放在错误的列中.
它为所有行提供正确的输出.
为什么会这样?使用cut命令可以做些什么来解决这个问题?
我想在TCL中将以下错误消息设置为变量,并与来自网络交换机的错误消息进行比较,绕过特殊字符
使用[slot/port]或["portname"]或[slot/*]或[*].
我试过这种方式
set x "Use \[slot/port] or \["portname"] or \[slot/\*] or \[\*]."
Run Code Online (Sandbox Code Playgroud)
但我在运行脚本时收到以下消息:
执行后关闭引用后的额外字符
请帮忙.谢谢!
我试图解析一个巨大的文本文件,比如200mb.
文本文件包含一些字符串
123
1234
12345
12345
Run Code Online (Sandbox Code Playgroud)
所以我的剧本看起来像
while read line ; do
echo "$line"
done <textfile
Run Code Online (Sandbox Code Playgroud)
但是使用上面的方法,我的字符串" 12345"被截断为"12345"
我试过用
sed -n "$i"p textfile
Run Code Online (Sandbox Code Playgroud)
但吞吐量从每秒27线减少到0.2线,这是不可接受的;-)
任何想法如何解决这个问题?
下面是我的脚本:
#!/usr/bin/expect
echo "enter unique id"
read test
mkdir -p /evoting_test/$test
spawn scp -r abc@10.150.10.104:/shareddata/was/l1/*.pdf /rishabh/$test/
set pass "abc123"
expect {
password: {send "$pass\r"; exp_continue}
}
Run Code Online (Sandbox Code Playgroud)
我收到错误:
invalid command name "echo"
while executing
"echo "enter uNIQUE id" "
(file "./scp_test.sh" line 2)
Run Code Online (Sandbox Code Playgroud)
它不是从用户读取变量并在命令中使用该变量
我正在编写一个shell脚本来将JSON文件发布到URL.
标题是:
Content-Type: application/json
Accept: application/json
Account-Number: xxxxxxxx
Authorization: Basic eW91cl91c2VyX25hbWU6cGFzc3dvcmQ=
Run Code Online (Sandbox Code Playgroud)
上面的JSON字符串保存在.JSON文件中,我的curl命令应该处理它并获得所需的响应.我使用以下命令但它没有成功处理:
curl -H "Content-Type: application/json" -X POST -d "data=@$f" https://abcdef.com/test/example/v1/
Run Code Online (Sandbox Code Playgroud)
$ f具有JSON文件名.
我也有以下问题:
我在命令窗口中通过Perl脚本生成一个大型XML文档,但是,目前它正在将文档打印到标准输出.Perl脚本修饰符没有允许写入文件的开关,所以我很好奇如何通过基本命令shell获取输入字符串并写入文件.
我目前的运作顺序:
perl dtd2xsd.pl someBigSchema.dtd
以上内容返回了请求的XSD内容,我只是坚持将其转换为文件.
我想编写一个shell脚本,它遍历目录下的所有目录,并在每次迭代时调用一个目录名作为参数的java程序.
所以我的父目录是作为shell脚本的参数提供的:例如:
. myShell.sh /myFolder/myDirectory
Run Code Online (Sandbox Code Playgroud)
下面有100个目录/myFolder/myDirectory.对于每个"directory_i",我想运行:
java myProg directory_i
Run Code Online (Sandbox Code Playgroud)
如果有人能为我提供一个完美的工作shell脚本!
我正在尝试使用命令行创建HTML文件,但是有一个问题.我需要引号否则回声不起作用.但现在引号也显示在HTML页面上.这是我的代码:
FindStr "BUILD SUCCESSFUL" test1.txt
echo "<html><body><table><tr><td>Plugin</td><td>Resultaten</td></tr>" > goedje.html
if %ERRORLEVEL% ==1 (echo "<tr BGCOLOR="#FF0000"><td>Build</td><td>Fout!</td></tr>" >> goedje.html ) else (echo "<tr BGCOLOR="#00FF00"><td>Build</td><td>Gelukt!</td></tr>" >> goedje.html)
echo "</table></body></html>" >> goedje.html
Run Code Online (Sandbox Code Playgroud)
如果我在没有引号的情况下这样做,那么程序就不会运行了!
我的crontab中有这个:
* * * * * cd /etc && . ./cron.sh>>cron.log
Run Code Online (Sandbox Code Playgroud)
在我的cron.sh(可执行文件)中,我具有:
#!/bin/sh
echo "hello world"
export MyVar="abcd"
Run Code Online (Sandbox Code Playgroud)
它既可以通过cron手动运行,也可以手动运行,但是只有在使用以下命令手动运行时,才设置环境变量:
. ./cron.sh
Run Code Online (Sandbox Code Playgroud)
谁能帮忙。我知道它与源有关,但我无法弄清楚。
这也不起作用:
* * * * * cd /etc && sh ./cron.sh>>cron.log
Run Code Online (Sandbox Code Playgroud)