假设我的文件只包含如下文本:
Test transition to drned-internal-asr9k-rt24711 load drned-internal-asr9k-rt24711 commit**
如果我进行,现在在终端上
cat
filename
|grep加载
我会得到类似的输出
加载drned-internal-asr9k-rt24711
但是我如何修改grep命令以将输出作为
drned-internal-asr9k-rt24711.txt
,即删除";负载";并添加";。txt";最后。那么该怎么做呢??
可能不是最好的解决方案,但:
cat | grep load | cut -c4- | sed 's/$/.txt/'
cut -c4-
将删除的前4个字符
CCD_ 3将添加";。txt";在输出结束时
这可以通过以下方式实现:
sed -nr 's/.*loads+(.*)/1.txt/p' file.txt
这将匹配load
之后的任何内容(加上一个或多个空格(并返回它,在末尾添加.txt
。
awk '{for(i=1;i<NF;i++){if(tolower($i)~/^load$/){print $(i+1) ".txt"}}}' file.txt
这将匹配加载后的下一列,并在输出中将.txt附加到该列。