Articles of bash

正则expression式在if语句中用空格匹配一个string(用引号?)

我将如何做一个正则expression式匹配,如下所示,但与(“^这个”)引号,如在现实世界中“这个”将是一个string,它可以有空格。 #!/bin/bash text="This is just a test string" if [[ "$text" =~ ^This ]]; then echo "matched" else echo "not matched" fi 我想要做类似的事情 if [[ "$text" =~ "^This is" ]]; then 但是这不符合。

使用sed来匹配模式并从行中删除到文件的末尾

我试图从pipe道input和/或文件中匹配一个模式,然后从匹配的行中移除到文件末尾。 我到处寻找,但似乎无法find一个适合我的需求的expression。 下面的expression式允许我删除到stream的开头,包括匹配的模式: sed -e '1,/Files:/d' 给出一些样本数据: Blah blah blah Foobar foo foo Files: somefiles.tar.gz 1 2 3 somefiles.tar.gz 1 2 3 —–THIS STUFF IS USELESS—– BLEH BLEH BLEH BLEH BLEH BLEH 运行上面的expression式会产生: Files: somefiles.tar.gz 1 2 3 somefiles.tar.gz 1 2 3 —–THIS STUFF IS USELESS—– BLEH BLEH BLEH BLEH BLEH BLEH 我想达到类似的效果,但方向相反。 使用从前面的expression式的输出,我想从—–THIS STUFF […]

CentOS的目录结构如同树?

CentOS上有没有相当于树的?

BC是忽略比例选项

我无法弄清楚为什么BC工具有时会忽略缩放选项。 这里是一个例子: > echo 'scale=2; 2.777 – 1.4744' | bc 1.3026 预期的结果是: 1.30 附加信息: > bash –version GNU bash, version 2.05b.0(1)-release (x86_64-suse-linux) Copyright (C) 2002 Free Software Foundation, Inc. > bc –version bc 1.06 Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.

如何在bash文件夹中的每个文件的开头添加一个string?

我希望能够在文件夹中的每个文本文件的开头添加一个string。 我怎样才能在Linux上使用bash来做到这一点?

将所有嵌套目录下的所有文件与shell匹配

有没有办法使用shell Globbing来识别嵌套的目录? 所以如果我有dir / dir1 / dir2 / dir3 / dir4 / dir5 / ..并且我拥有所有这些文件,那么匹配所有目录下的所有文件的等效匹配模式是什么,类似于 – 例如 – ls -R

以shell的文件夹path的最后部分

如果你input密码,你会得到如下的东西: /home/username/Desctop/myfolder/ 如何把最后一部分? 我的文件myfolderpath。 这一定很简单,但我找不到容易的解决scheme。 我知道如何在java中处理这个问题,而不是在shell中。 谢谢

什么时候xargs应该比while-read循环更受欢迎?

xargs被广泛用于shell脚本中; while read -r; do … done通常很容易在bash中重新使用这些用法while read -r; do … done while read -r; do … done或while read -ar; do … done while read -ar; do … done循环。 什么时候应该selectxargs ,什么时候应该读while循环?

从bash中的date中减去天数

我想从bash中的date中减去“天数”。 我正在尝试这样的事情 echo $dataset_date #output is 2013-08-07 echo $date_diff #output is 2 p_dataset_date=`$dataset_date –date="-$date_diff days" +%Y-%m-%d` # Getting Error

在bash中,如何在一个variables中存储返回值?

我知道Linux中的一些非常基本的命令,并且正在尝试编写一些脚本。 我写了一个函数,用5位数字来计算最后两位数的总和。 该函数应该在最后2位之间连接这个结果和并返回它。 我想要返回这个值的原因是因为我将在另一个函数中使用这个值。 例如:如果我有12345,那么我的函数将计算4 + 5并返回495。 #!/bin/bash set -x echo "enter: " read input function password_formula { length=${#input} last_two=${input:length-2:length} first=`echo $last_two| sed -e 's/\(.\)/\1 /g'|awk '{print $2}'` second=`echo $last_two| sed -e 's/\(.\)/\1 /g'|awk '{print $1}'` let sum=$first+$second sum_len=${#sum} echo $second echo $sum if [ $sum -gt 9 ] then sum=${sum:1} fi value=$second$sum$first return $value […]