我想打印出一个包含一系列评论的文件,例如:
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined
# SSL Engine Switch:
Run Code Online (Sandbox Code Playgroud)
实质上,该文件包含多个缩进级别,其中注释以#符号开头.
grep应该删除空行,以及在文本之前有哈希符号的行(暗示这些是注释).
我知道可以通过以下方式删除空行: grep -v '^$'
但是,如何删除带有前导空格的行,然后删除#符号,并仅打印出包含实际代码的行?我想用bash,grep和/或sed这样做.
有没有办法拆分%date%批处理文件(例如,在3个环境变量中),但不管区域设置如何?今天的日期将是3/13/2013针对美国的,但是我的区域设置是13.3.2013- 分隔符已更改,订单也是如此.
我试了几个小时为这个问题找到一个纯粹的sed解决方案.显然,遗憾的是我没有成功.一个非常棘手的问题.
例子(来自awk问题):
aaa 111 aaa 222 aaa 333 bbb 444 bbb 555 ccc 666
aaa 111,222,333 bbb 444,555 ccc 666
APM00065101435 189 APM00065101435 190 APM00065101435 191 APM00065101435 390 190104555 00C7 190104555 00D1 190104555 00E1 190104555 0454 190104555 0462 APM00065101435 391 APM00065101435 392
APM00065101435 189,190,191,390 190104555 00C7,00D1,00E1,0454,0462 APM00065101435 391,392
我试过了什么?我的一些非工作示例:
sed -nr '1{h;b};H;x;/(\S+).*\n\1.*\'/M{x;b};s/.*\'//m;s/\n\S*\s*/,/g;s/,$//;p' file
sed -nr '1{h;b};H;x;h;s/(\S+).*\n(\S+).*\'/\1\n\2/m;/(\S+)\n\1\'/M{$!b;g;bk};g;s/\n.*\'//m;:k;s/^\S+\s//2mg;s/\n/,/g;p;x;s/.*\n//;h;$l' file2
sed -nr 'H;g;s/(\S+)\s.*/\1/gm;/(\S+)\n\1\'/M{$!b;g;bk};g;1d;s/\n.*\'//m;:k;s/\n\S+\s/,/2g;s/\n//;p;g;s/\n.*(\n.*)$/\1/;h' file2
感谢您阅读本文.
在Windows批处理文件中,我知道%1被第一个参数%2替换,被第二个参数%*替换,并被所有参数替换.
有没有办法在第一个之后获得所有参数?(例如参数2-N)第二个之后的所有论点怎么样?
该SHIFT命令似乎没有影响%*.