我试图在匹配模式之后仅打印第一个单词,但没有成功,请允许我向您解释我的要求
输入文件
$>cat abc.txt
source: hrs1bdapoc2:21002
1571426725 secs (436507.42 hrs) behind the primary
所需的输出:-
echo $delay_time
1571426725
到目前为止,我使用awk命令尝试过的操作:-
$>delay_time=`awk -F'secs' '{print $1}' abc.txt`
$>echo $delay_time
source: hrs1bdapoc2:21002 1571426725
你能告诉我我做错了吗
答案 0 :(得分:1)
能否请您尝试以下。尽管我怀疑您的Input_file是因为您显示的代码应该可以解决。
awk 'match($0,/[0-9]+ secs/){print substr($0,RSTART+5,RLENGTH-5)}' Input_file
也可以通过执行cat -v Input_file
检查您的Input_file是否具有控制M个字符,然后可以通过执行tr -d '\r' Input_file > temp && mv temp Input_file
来删除它们。
还要创建变量,请执行类似var=$(above command)
答案 1 :(得分:0)
在具有open-uri
的行上打印第一个元素
secs
不推荐使用反引号`。使用delay_time=$(awk '/secs/{ print $1 }' abc.txt)
代替命令。