小编Mar*_*ley的帖子

组合多个sed命令

拥有以下文件:

<tr class="in">
  <th scope="row">In</th>
  <td>1.2 kB/s (0.0%)</td>
  <td>8.3 kB/s (0.0%) </td>
  <td>3.2 kB/s (0.0%) </td>
</tr>
<tr class="out">
  <th scope="row">Out</th>
  <td>6.7 kB/s (0.6%) </td>
  <td>4.2 kB/s (0.1%) </td>
  <td>1.5 kB/s (0.6%) </td>
</tr>
Run Code Online (Sandbox Code Playgroud)

我想获取每秒之间的值<td></td>(并将其保存到文件),如下所示:

8.3
4.2
Run Code Online (Sandbox Code Playgroud)

我的代码到目前为止:

# get the lines with <td> tags
cat tmp.txt | grep '<td>[0-9]*.[0-9]' > tmp2.txt

# delete whitespaces
sed -i 's/[\t ]//g' tmp2.txt

# remove <td> tag
cat tmp2.txt | sed "s/<td>//g" > tmp3.txt

# remove "kB/s (0.0%)"
cat tmp3.txt | …
Run Code Online (Sandbox Code Playgroud)

regex shell sed

5
推荐指数
1
解决办法
2万
查看次数

Log4j每天滚动catalina.out而不重启Tomcat?

我正确配置Log4j时遇到问题.我希望Log4j能够在午夜时将我的catalina.out文件旋转,如下所示


:log4j.properties:

log4j.rootLogger=INFO, CATALINA

# Define all the appenders
log4j.appender.CATALINA=org.apache.log4j.DailyRollingFileAppender
log4j.appender.CATALINA.File=/var/log/tomcat7/catalina.out
log4j.appender.CATALINA.Append=true
log4j.appender.CATALINA.Encoding=UTF-8

# Roll-over the log once per day
log4j.appender.CATALINA.DatePattern='.'yyyy-MM-dd-HH-mm'.log'
log4j.appender.CATALINA.layout = org.apache.log4j.PatternLayout
log4j.appender.CATALINA.layout.ConversionPattern =%d{HH:mm:ss} %5p [%t] - %m%n
Run Code Online (Sandbox Code Playgroud)


配置完成后,我重新启动了Tomcat,所有内容都写入:

/var/log/tomcat7/catalina.out
Run Code Online (Sandbox Code Playgroud)


为了测试我的配置,我将当前日期时间更改为23:59:59:

#ls -l /var/log/tomcat7/
-rw-r--r-- 1 tomcat7 tomcat7 5840  4. May 00:00 catalina.out
Run Code Online (Sandbox Code Playgroud)


如你所见,它在午夜没有旋转...(?)

重新启动Tomcat时,它完全正常:

#ls -l /var/log/tomcat7/
-rw-r--r-- 1 tomcat7 tomcat7 5840  4. May 13:37 catalina.out
-rw-r--r-- 1 tomcat7 root    2395  4. May 00:00 catalina.out.*CURRENTDATE*.log
Run Code Online (Sandbox Code Playgroud)

甚至可以在不重启Tomcat的情况下旋转我的日志文件吗?

谢谢,马利

java log4j rotation catalina tomcat7

2
推荐指数
1
解决办法
2万
查看次数

Perl regex/foo | bar/negation

/\d/         # contains a digit
/^\D*$/      # doesn't contain a digit

/[abc]/      # contains either the letter a, b, or c
/^[^abc]*$/  # doesn't contain a, b, or c

/foo|bar/    # contains foo or bar
/???????/    # doesn't contain foo or bar
Run Code Online (Sandbox Code Playgroud)

谁可以帮我这个?我找不到任何解决方案,但我需要一个正则表达式来否定这个没有任何可编程逻辑.

regex perl regex-negation

2
推荐指数
1
解决办法
1574
查看次数

Perl使用困难的Regex将String从XML写入File

我有一个XML文件,我需要使用Perl传输到列表(不使用XSLT).

这是我的(简单,删除了10个以上的属性,以便于阅读!)XML:

...
<XMLTAG ID="1" name="NAME1" status="0" date1="24.05.2012 13:37:00" date2="25.05.2012 13:37:00" />
<XMLTAG ID="2" name="NAME2" status="1" date1="24.05.2012 13:37:00" date2="25.05.2012 13:37:00" />
<XMLTAG ID="3" name="NAME3" status="0" date1="24.05.2012 13:37:00" date2="25.05.2012 13:37:00" />
...
Run Code Online (Sandbox Code Playgroud)

到目前为止我得到了什么:

my $input = in.xml;
my $output = out.txt;

# open input
open( INPUT, $input )
  || die "Can't find $input: $_";

# open output
open( OUTPUT, ">$output" )
  || die "Can't find $output: $_";

    # run until perl returns undef (at the end of the file)
    while (<INPUT>) …
Run Code Online (Sandbox Code Playgroud)

regex perl

2
推荐指数
1
解决办法
364
查看次数

标签 统计

regex ×3

perl ×2

catalina ×1

java ×1

log4j ×1

regex-negation ×1

rotation ×1

sed ×1

shell ×1

tomcat7 ×1