XML構成ファイルで最後のクローズタグが壊れないように1行を追加する必要があります。 SEDを使用してこれを達成できますか?
ファイル全体の行数はサーバーごとに異なる場合があります。
編集:編集するファイルのいくつかの例:
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="STDOUT" />
</root>
</configuration>
他の例:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="DEV_HOME" value="c:/logs" />
<appender name="FILE-AUDIT"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${DEV_HOME}/debug.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>
%d{yyyy-MM-dd HH:mm:ss} - %msg%n
</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>${DEV_HOME}/archived/debug.%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
<logger name="com.mkyong.web" level="debug"
additivity="false">
<appender-ref ref="FILE-AUDIT" />
</logger>
<root level="error">
<appender-ref ref="FILE-AUDIT" />
</root>
<logger name="com.mkyong.ext" level="debug"
additivity="false">
<appender-ref ref="FILE-AUDIT" />
</logger>
<logger name="com.mkyong.other" level="info"
additivity="false">
<appender-ref ref="FILE-AUDIT" />
</logger>
<logger name="com.mkyong.commons" level="debug"
additivity="false">
<appender-ref ref="FILE-AUDIT" />
</logger>
</configuration>
答え1
i最後の($
)行の前に行を挿入するには、次のようにします。
$ cat test
one
two
three
four
five
$ sed '$i<hello>!' test
one
two
three
four
<hello>!
five
これはGNU用ですsed
(先行スペースまたはタブが削除されることに注意してください)。移植性を持たせるには(またはsed
挿入された行の先行スペースまたはタブを保持したい場合はGNUを使用するために)、次のものが必要です。
sed '$i\
<hello>!' test
答え2
はい、sed
実行する操作を指示する前に、行番号を作成して特定の行でのみ作業することができます。たとえば、foo
ファイルの4行目の後に文字列を含む行を挿入するには、次のようにします。
sed '4s/$/\nfoo/' file # GNU sed and a few others
sed '4s/$/\
foo/' file # standardly/portably
2番目から最後の行の後に行を挿入するには、次の2つの方法を考えます。
まず、行数を計算して編集します。
sed "$(( $( wc -l < file) -2 ))s/$/\nfoo/" file
使用
tac
:tac file | sed '2s/$/\nfoo/' | tac