我有一个包含以下内容的文件:
zdk
aaa
b12
cdn
dke
kdn
Run Code Online (Sandbox Code Playgroud)
输入 1:aaa
和cdn
输出 1:
aaa
b12
cdn
Run Code Online (Sandbox Code Playgroud)
输入 2:zdk
和dke
输出 2:
zdk
aaa
b12
cdn
dke
Run Code Online (Sandbox Code Playgroud)
我可以使用以下命令来实现:
grep -a aaa -A2 file # Output 1
grep -a aaa -A4 file # Output 2
Run Code Online (Sandbox Code Playgroud)
但是在文件中我不知道结束字符串模式的确切出现(位置)是什么(文件有 20000 行)
我怎样才能做到这一点?
我已经执行了以下命令
cat /proc/loadavg && date
Run Code Online (Sandbox Code Playgroud)
实际结果:
0.00 0.00 0.00 1/803 26256
Fri Aug 26 09:00:56 EEST 2016
Run Code Online (Sandbox Code Playgroud)
预期结果:
0.00 0.00 0.00 1/803 26256 @@ Fri Aug 26 09:00:56 EEST 2016
Run Code Online (Sandbox Code Playgroud)
我试过sed
和tr
,但没有奏效。
cat /proc/loadavg && date | sed 's/\n/ @@ /g'
cat /proc/loadavg && date | tr '\n' ' @@ '
Run Code Online (Sandbox Code Playgroud)
任何想法,我缺少什么?
如果我的平均负载超过 10,我需要提醒。
如果我的 awk 命令返回一个整数,我可以这样做:
declare -i MAX_LOAD=10
declare -i L1=`cat /proc/loadavg | awk {'print $1'}`
if [ $L1 -gt $MAX_LOAD ]
then
echo "Alert"
fi
Run Code Online (Sandbox Code Playgroud)
但它返回 L1 中的浮点值(例如,2.35)。
我如何比较这种情况下的值?
我使用以下命令创建了用户
useradd myuser
Run Code Online (Sandbox Code Playgroud)
然后,我尝试使用以下命令更改密码
usermod --password mypwd myuser
Run Code Online (Sandbox Code Playgroud)
(我知道普通密码不是一个好方法,但暂时我正在这样做)
我尝试myuser
使用mypwd
. 但是,它不允许登录(密码错误)。
我可以使用passwd myuser
(工作正常)。有一些限制,所以我正在使用usermod
.
我有什么遗漏usermod
吗?或者除了更改密码之外还有其他选择passwd username
吗?
文件 ( myfile.txt
) 包含如下数据:
abc#ab1=23
nrt#
#clb1aX
amd#322
Run Code Online (Sandbox Code Playgroud)
期望输出:
abc
nrt
clb1ax
amd
Run Code Online (Sandbox Code Playgroud)
我可以这样做,
for i in `cat myfile.txt`
do
s1=`echo $i | cut -d'#' -f1`;
s2=`echo $i | cut -d'#' -f2`;
if [ "$s1" == "" ]; then
echo "$s2"
else
echo "$s1"
fi;
done;
Run Code Online (Sandbox Code Playgroud)
不过反正是有做到这一点,而无需使用for
和if
,就像使用awk
或sed
或cut
或单行其他什么东西?
variable_list="
any:any:-a -b -c any
one:one:-c -b -f -m mul
mul:one:-c -b -f -m mul
"
for f in `echo $variable_list`
do
c1=`echo $f | cut -d':' -f1`;
c2=`echo $f | cut -d':' -f2`;
c3=`echo $f | cut -d':' -f3-`;
echo "c1==>$c1 and c2==>$c2 and c3==>$c3";
#exit 0; ###I made mistake here
done;
Run Code Online (Sandbox Code Playgroud)
预期输出:
c1==>any and c2==>any and c3==>-a -b -c any
c1==>one and c2==>one and c3==>-c -b -f -m mul
c1==>mul and c2==>one and c3==>-c -b -f -m mul …
Run Code Online (Sandbox Code Playgroud) 我有2个文件
文件 1:
01:12:00,001 Some text
01:14:00,003 Some text
02:12:01,394 Some text
Run Code Online (Sandbox Code Playgroud)
文件2:
01:12:00,001 Some text
01:12:01,029 Some text
01:13:21,123 Some text
Run Code Online (Sandbox Code Playgroud)
我需要如下输出:
01:12:00,001 Some text
01:12:00,001 Some text
01:12:01,029 Some text
01:13:21,123 Some text
01:14:00,003 Some text
02:12:01,394 Some text
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?