我需要找出如何使用sed 删除文本文件中行末的最多 10位数字。
例如,如果我有这个:
ajsdlfkjasldf1234567890
asdlkjfalskdjf123456
adsf;lkjasldfkjas123
Run Code Online (Sandbox Code Playgroud)
它应该变成:
ajsdlfkjasldf
asdlkjfalskdjf
adsf;lkjasldfkjas
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
我有这个,但是它不起作用:
sed 's/[0-9]{10}$//g'
Run Code Online (Sandbox Code Playgroud) 任何人都可以解释有什么区别
echo $"Starting $CMD"
Run Code Online (Sandbox Code Playgroud)
和
echo "String $CMD"
Run Code Online (Sandbox Code Playgroud)
他们似乎看起来一样.
我是shell脚本并学习它的新手.我得到了监控apache的代码.该文件的名称是test.sh.我稍微改了一下代码.
我在寻找的是,当我这样做时:
./test.sh -H localhost -wr 2 -cr 5 -arg cpu_load
Run Code Online (Sandbox Code Playgroud)
它应该为它测试apache cpu_load.即我试图用我的-arg参数控制监控apache .
但这似乎并没有奏效.
当我运行这个:
./test.sh -H localhost -wr 2 -cr 5 -arg cpu_load
Run Code Online (Sandbox Code Playgroud)
我收到错误:
./test.sh: 282: [: -ge: unexpected operator
./test.sh: 286: [: -ge: unexpected operator
Run Code Online (Sandbox Code Playgroud)
以下是代码的一部分:
#!/bin/sh
while test -n "$1"; do
case "$1" in
--help|-h)
print_help
exit $ST_UK
;;
--version|-v)
print_version $PROGNAME $VERSION
exit $ST_UK
;;
--hostname|-H)
hostname=$2
shift
;;
--port|-P)
port=$2
shift
;;
--timeout|-t)
timeout=$2
shift
;;
--remote-server|-R)
remote_srv=1
;; …Run Code Online (Sandbox Code Playgroud) 我想从字符串中提取一些可变长度.
字符串看起来像这样:
used_memory:1775220696
Run Code Online (Sandbox Code Playgroud)
我想把这个1775220696部分放在一个变量中.关于这个问题有很多问题,但我找不到适合我需求的解决方案.
我通过这样做在Perl中声明了一个哈希:
my %hash = ();
Run Code Online (Sandbox Code Playgroud)
我继续向哈希添加元素.有时,$hash{$x}没有定义,意味着它可能是null.因此,当我尝试打印它时,我什么也得不到.我希望0在$x没有定义条目的情况下看到.有人能告诉我该怎么做?如何初始化哈希元素0?
我正在阅读这段代码.我想知道-le以下代码段的含义
.
if [ $stage -le 2 ]; then
Run Code Online (Sandbox Code Playgroud)
在其中一个问题中,它-le代表<=字符串,但这是在Perl中.这里也一样吗?
此外,我想知道该$stage变量是否自动更新.它已经0在开始时初始化,但后来,它是如何增加的?
我想将系统时间修改为两天,但我发现我可以使用dateSolaris中的命令将时间设置为特定时间:
#date mmddhhmmYY
Run Code Online (Sandbox Code Playgroud)
但是不能在当前时间增加两天.有没有一种简单的方法可以使用shell命令执行此任务?如果您在linux中了解类似内容,请与我分享.
下午好,
我正在运行一个简单的循环来检查 SD 卡是否已插入或移除,但它似乎并没有一直正常工作。
问题是,当程序以插入的 SD 卡启动时,if(f.good())语句为True。
当取出 SD 卡时,此语句为False。
但是,当重新插入 SD 卡时,该语句仍然为False。
C++ 中是否有更可靠的方法来检测 SD 卡的存在?我正在运行基于 OpenEmbedded 的 Linux Yocto。我宁愿避免使用任何外部库,并尽可能使用文件 IO 或系统调用。
谢谢。
我的循环如下所示,
while (running)
{
ifstream f("/dev/mmcblk1");
if (f.good()) {
f.close();
if (!mounted)
{
system("mount /dev/mmcblk1p1 /mnt/Storage");
mounted = true;
}
sdPresent = true;
}
else {
f.close();
sdPresent = false;
mounted = false;
}
std::this_thread::sleep_for(std::chrono::milliseconds(500));
}
Run Code Online (Sandbox Code Playgroud) 我是Unix shell脚本的新手,并试图获得shell脚本的一些知识.请检查我的要求和我的方法.
我有一个包含数据的输入文件
ABC = A:3 E:3 PS:6
PQR = B:5 S:5 AS:2 N:2
Run Code Online (Sandbox Code Playgroud)
我试图解析数据并得到结果
ABC
A=3
E=3
PS=6
PQR
B=5
S=5
AS=2
N=2
Run Code Online (Sandbox Code Playgroud)
可以水平和垂直添加值,因此我尝试使用数组.我正在尝试这样的事情:
myarr=(main.conf | awk -F"=" 'NR!=1 {print $1}'))
echo ${myarr[1]}
# Or loop through every element in the array
for i in "${myarr[@]}"
do
:
echo $i
done
Run Code Online (Sandbox Code Playgroud)
要么
awk -F"=" 'NR!=1 {
print $1"\n"
STR=$2
IFS=':' read -r -a array <<< "$STR"
for i in "${!array[@]}"
do
echo "$i=>${array[i]}"
done
}' main.conf
Run Code Online (Sandbox Code Playgroud)
但是,当我将此代码添加到.sh文件并尝试运行它时,我会收到语法错误 …
在我的 bash 脚本中,我读入了一组如下所示的行
arg $PROG arg arg
Run Code Online (Sandbox Code Playgroud)
我希望能够运行该行,将 STDERR 捕获为变量,并防止 STDOUT 或 STDERR 打印到屏幕上。到目前为止,这是我的解决方案,但错误变量始终为空。
$PROG=/c/Program1
{ error=$($(eval $line) 2>&1 1>&$out); } {out}>&1
echo $error
Run Code Online (Sandbox Code Playgroud)
请详细说明解决方法。我是 bash shell 脚本的新手并正在尝试学习。