如果第一个字段以 Linux1 开头,如何打印该行
例如:
echo Linux1_ver2 12542 kernel-update | awk '{if ($1 ~ Linux1 ) print $0;}'
Run Code Online (Sandbox Code Playgroud)
目标是打印该行,而第一个字段以 Linux1 开头
线路示例:
Linux1-new 36352 Version:true
Linux1-1625543 9847
Linux1:16254 8467563
Run Code Online (Sandbox Code Playgroud)
备注 - 空格或制表符可以在第一次提交之前
我的目标是使用(仅使用case+ esac)验证数字范围,并打印该范围。例如:
>=0<=80>=81<=100我下面的脚本的问题>=0<=90仅当数字介于 0 和 9 之间时才打印。如何修复我的脚本,使其根据数字范围打印正确的输出?
#!/bin/ksh
read number
case $number in
[0-80]) echo ">=0<=80";;
[81-100]) echo ">=81<=100";;
[101-120]) echo ">=101<=120";;
[121-300]) echo ">=121<=300";;
esac
Run Code Online (Sandbox Code Playgroud) 我有solaris机器(solaris 10)
请查看以下简单命令(haconf -makerw | grep -iq "Cluster already writable")
# haconf -makerw
VCS WARNING V-16-1-10364 Cluster already writable.
haconf -makerw | grep -iq "Cluster already writable"
# echo $?
0
Run Code Online (Sandbox Code Playgroud)
我从 grep 得到退出状态 0,
这是正确的(因为我们总是在最后一个命令中获得 exe 状态)
但
我的问题是:
如何从命令haconf -makerw 代替 grep获取退出状态( $? )?
或者需要在我的语法中添加什么才能了解 haconf -makerw 是否成功?
haconf -makerw | grep -iq "Cluster already writable"
# echo $? ( will print the exe status from haconf -makerw )
Run Code Online (Sandbox Code Playgroud) 我有 Solaris 10 机器
我需要验证 Solaris 机器中某个文件的时间戳
并获得以下格式
[year][month][day]
Run Code Online (Sandbox Code Playgroud)
Linux 上的工作命令示例
ls -l --time-style=+%Y%m%d /etc/hosts | awk '{print $6}'
20121107 <----- ( expected results )
Run Code Online (Sandbox Code Playgroud)
在我的 Solaris 机器上,我尝试了以下命令,但它们都不起作用(因为 Solaris 标志与 Linux 不同),并且我的 Solaris 中未定义 stat 命令
# ls -l -T -D %Y%m%d /etc/hosts
ls: illegal option -- T
ls: illegal option -- D
usage: ls -1RaAdCxmnlhogrtuvVcpFbqisfHLeE@ [files]
Run Code Online (Sandbox Code Playgroud)
# stat /etc/hosts | awk '/Access/{print $2}' | tail -n1 | tr -d'' '-'
ksh: stat: not found
Run Code Online (Sandbox Code Playgroud)
请建议是否有其他方法可以获取文件的戳日期(不是通过 ls 或 …
在我的 Linux 机器上,我不清楚为什么如果我执行以下操作,那么我不会只得到版本字符串(“1.5.0_32”)。
# java -version | grep version | awk '{print $NF}'
java version "1.5.0_32"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_32-b05)
Java HotSpot(TM) Server VM (build 1.5.0_32-b05, mixed mode)
Run Code Online (Sandbox Code Playgroud)
为什么不grep或awk工作?
只是为了表明 grep 和 awk 在其他示例上工作
# echo ' java version "1.5.0_32" ' | grep version | awk '{print $NF}'
"1.5.0_32"
Run Code Online (Sandbox Code Playgroud) 有时文件名是由几个名称和每个名称之间的空格创建的,如下所示:
$ touch "A B C"
$ ls
A B C <-- one file but has three words !
file1
file2
file3
Run Code Online (Sandbox Code Playgroud)
如何忽略(过滤)从几个名称实际创建的文件为“AB C”?
预期输出
$ ls <filter>
file1
file2
file3
Run Code Online (Sandbox Code Playgroud) 我有一个文件,每行包含两个路径。我想两次删除包含相同路径的行。
我在 Linux 和 Solaris 上工作。我想要 sed 或 awk 或 perl 的单行。
示例输入文件:
/usr/lib/libgmp.so.3.3.3 /usr/lib/libgmp.so.3.3.3
/usr/lib/libxslt.so.1.1.17 /usr/lib/libxslt.so.1.1.17
/usr/lib/sse2/libgmp.so.3.3.3 /usr/lib/sse2/libgmp.so.3.3.3
/usr/local/swp-tomcat-6.0/lib/commons-logging-1.1.1.jar /usr/local/swp-tomcat-6.0/lib/commons-logging-1.1.1.jar
/usr/share/doc/libXrandr-1.1.1 /usr/share/doc/libXrandr-1.1.1
/usr/share/doc/libxslt-1.1.17 /usr/share/doc/libxslt-1.1.17
/etc/3.3.3.255 /etc/172.17.211.255
/etc/1.1.1.255 /etc/172.17.213.255
Run Code Online (Sandbox Code Playgroud)
预期输出:
/etc/3.3.3.255 /etc/172.17.211.255
/etc/1.1.1.255 /etc/172.17.213.255
Run Code Online (Sandbox Code Playgroud) 由于我的 Solaris 机器上的技术原因,我无法使用awk来打印行中的最后一个字段。
awk从行(使用cut或tr...等)打印最后一个字段的其他替代方法是什么?
示例 1:
/usr/bin/hostname
machine1b
/usr/bin/hostname | /usr/bin/sed 's/\(.\{1\}\)/\1 /g' | /usr/bin/awk '{print $NF}'
b
Run Code Online (Sandbox Code Playgroud)
例2
echo 1 2 3 4 5 | /usr/bin/awk '{print $NF}'
5
Run Code Online (Sandbox Code Playgroud) 命令
find /tmp -name 'core*' -type f -print0 | xargs -0
Run Code Online (Sandbox Code Playgroud)
在 Linux 上工作正常,但xargs -0在 Solaris 上选项不合法
xargsSolaris 10的等效选项 ( ? )是什么
第二个问题:
是否可以更改语法:
find /tmp -name 'core*' -type f -print0 | xargs -0
Run Code Online (Sandbox Code Playgroud)
因此它将适用于操作系统 - Linux 和 Solaris
我在我的solaris 10机器上尝试:
find /tmp -name 'core*' -type f -print0 | xargs -0
xargs: illegal option -- 0
xargs: Usage: xargs: [-t] [-p] [-e[eofstr]] [-E eofstr] [-I replstr] [-i[replstr]] [-L #] [-l[#]] [-n # [-x]] [-s size] [cmd [args …Run Code Online (Sandbox Code Playgroud)