我正在尝试构建一个shell脚本来监视一些日志文件.我正在使用这样的命令:
tail -f /var/somelog | grep --line-buffered " some test and p l a c e h o l d e r" | cut -f 3,4,14 -d " "
Run Code Online (Sandbox Code Playgroud)
日志文件如下:
some test and p l a c e h o l d e r 3
some test and p l a c e h o l d e r 4
some test and p l a c e h o l d e r 5
some test and p l …
Run Code Online (Sandbox Code Playgroud) 我有以下的文件,我需要打印的一切,除了$1
和$2
通过awk
文件:
INFORMATION DATA 12 33 55 33 66 43
INFORMATION DATA 45 76 44 66 77 33
INFORMATION DATA 77 83 56 77 88 22
...
Run Code Online (Sandbox Code Playgroud)
理想的输出:
12 33 55 33 66 43
45 76 44 66 77 33
77 83 56 77 88 22
...
Run Code Online (Sandbox Code Playgroud) 使用git list-files
提供了我在其中跟踪的目录和文件.有这样的命令:
git list-directories
Run Code Online (Sandbox Code Playgroud)
或类似的东西,只列出跟踪的非空非递归目录名称?
当我们在git存储库中有很多(比如20个)子模块时,我们可以像这样安装(和更新)它们:
git submodules update --init --recursive
Run Code Online (Sandbox Code Playgroud)
Git尝试在此命令后下载每个子模块(递归).如果我们想让一些子模块可选(如插件)怎么办?
我们怎样才能让git跳过默认下载这些可选子模块,并在我们标记这个子模块时处理为通常的子模块"好的,从现在开始使用"?
我正在尝试使用awk删除文本文件中的前三个字段.删除前三个字段很容易.但是线路的其余部分被awk搞砸了:分隔符从一个标签变为另一个空格
这是我尝试过的:
head pivot.threeb.tsv | awk 'BEGIN {IFS="\t"} {$1=$2=$3=""; print }'
Run Code Online (Sandbox Code Playgroud)
前三列已正确删除.问题是输出结束时,列$ 4 $ 5 $ 6等之间的选项卡转换为空格.
更新:标记为重复的另一个问题是在此之后创建的:查看日期.
我正在尝试编写一个快速awk脚本,以这种格式转换行:
AAAA BBBB CCCC DDDD...
Run Code Online (Sandbox Code Playgroud)
至
CCCC AAAA BBBB DDDD...
Run Code Online (Sandbox Code Playgroud)
这是我的脚本:
{ printf "%s %s %s %s", $3, $1, $2, $4 };
Run Code Online (Sandbox Code Playgroud)
这种方法很好,除非原始输入行具有多于4个标记,在这种情况下,不会打印第5个和后续标记.
我检查了一些答案,例如使用awk打印从第n个到最后一个列的所有列,但它们依赖于设置变量,""
如果稍后重用这些变量,这些变量似乎会导致问题.
是否有一种简单的方法可以替换$4
为"从4美元到行尾"的子字符串?
07:46:24,059 DEBUG [com.ibm.cmps.portal.web.account.tree.RelationshipRetriever] (http-nykdsr9622/10.54.65.111:4150-3) Fund count: 14
07:46:28,378 DEBUG [com.ibm.cmps.extgrid.grid.StaticHtmlControl] (http-nykcsr5422/10.54.65.111:4150-3) rowCount:75 - displayThreshold:75
07:46:28,384 INFO [com.ibm.cmps.extgrid.xml.TreeGridV6XmlGenerator] (http-nykdsr9622/10.54.65.111:4150-3) Finished layout rendering in 9 ms
Run Code Online (Sandbox Code Playgroud)
日志文件的格式如上.我想只打印JavaClass名称和消息日志.例如,从上面的文字,我需要提取下面的数据.
[com.ibm.cmps.portal.web.account.tree.RelationshipRetriever] Fund count: 14
[com.ibm.cmps.extgrid.grid.StaticHtmlControl] rowCount:75 - displayThreshold:75
[com.ibm.cmps.extgrid.xml.TreeGridV6XmlGenerator] Finished layout rendering in 9 ms
Run Code Online (Sandbox Code Playgroud)
我希望打印我使用awk命令来获得它.下面是由awk分隔的单词..
$1=07:46:24,059
$2=DEBUG
$3=[com.ibm.cmps.portal.web.account.tree.RelationshipRetriever]
$4=(http-nykdsr9622/10.54.65.111:4150-3)
$5,$6,.. remaining Log message
Run Code Online (Sandbox Code Playgroud)
由于$ 4之后的单词数量不固定,我希望在$ 5之后打印$ 3和所有单词
我尝试使用以下命令 -
awk '{print $3, $5;}' jboss.log
awk '{print $3, $5,$6;}' jboss.log
Run Code Online (Sandbox Code Playgroud)
我想在4美元之后接受所有的话.
awk允许这样做吗?
我也很感激使用任何其他命令.
我有一个很大的空格分隔.txt文件(大约50 MB),文件的结构看起来像这样.我想摆脱前8个空格分隔列.
L1045 +++$+++ u0 +++$+++ m0 +++$+++ BIANCA +++$+++ They do not!
L1044 +++$+++ u2 +++$+++ m0 +++$+++ CAMERON +++$+++ They do to!
L985 +++$+++ u0 +++$+++ m0 +++$+++ BIANCA +++$+++ I hope so.
L984 +++$+++ u2 +++$+++ m0 +++$+++ CAMERON +++$+++ She okay?
L925 +++$+++ u0 +++$+++ m0 +++$+++ BIANCA +++$+++ Let's go.
L924 +++$+++ u2 +++$+++ m0 +++$+++ CAMERON +++$+++ Wow
L872 +++$+++ u0 +++$+++ m0 +++$+++ BIANCA +++$+++ Okay -- you're gonna need to learn how …
Run Code Online (Sandbox Code Playgroud)