- 输入文件:Test.txt*
-rw-r--r-- 1 dev dev 93K Sep 18 05:37 Server-23091805496-2-AC.log
-rw-r--r-- 1 dev dev 40K Sep 18 05:44 ServerM-23090331-5709-log.log
-rw-r--r-- 1 dev dev 484K Sep 18 05:46 Server-280334-12570-log.log
-rw-r--r-- 1 dev dev 235K Sep 18 05:47 Server-233405500-1-AC.log
第一个文件输出:
Sep 18 05:37 Server-23091805496-2-AC.log
Sep 18 05:44 ServerM-23090331-5709-log.log
Sep 18 05:46 Server-280334-12570-log.log
Sep 18 05:47 Server-233405500-1-AC.log
第二个文件输出:
Server-23091805496-2-AC.log
ServerM-23090331-5709-log.log
Server-280334-12570-log.log
Server-233405500-1-AC.log
**已在下面尝试:*1.sed 's/ /\n/g' Test.txt2.ls -ltr| grep“Sep 18 08:“|sed -n '1p'| cut -d "-f2
4条答案
按热度按时间vs91vp4v1#
一个答案可能是:
或者更好:
哪里
sed
只运行一次,没有任何分支到其他工具,K
*,在第二个建议中,删除非空格后跟空格,重复5次
w
写入文件file1.txt
-e
sed参数开始(请参阅stevesliva的评论以了解有关此的解释)。在第二个建议中,删除非空格后跟空格,重复3次
sed
的 * 标准输出 * 发送到file2.txt
如果
ls -l
在某些语言中显示日期,如 * 法语 * 打印日作为第一个字段,对齐为2个字符(%2d
),要在file1.txt
中保持 day 字段 * 对齐 *,您可以在第一个sed
命令中添加一个小的2个字符要求:所以第一个字段是一个 * 空格后跟一个数字 * 或 * 两个数字 *。(在最后一个替换命令的开始处添加一个 * 潜在 * 空格)。
**注意:**在这里,我使用了 redirection 作为输入(
<input.txt
),但这不是必要的。请阅读我的评论,以回答马克·塞特的评论。vx6bjr1n2#
这个工作是为
awk
不是为sed
。试试这个:vlf7wbxs3#
这可能对你有用(GNU sed):
为你想要删除的字符串做一个掩码,删除它们并将结果写入文件。
在这种情况下,请对第二个文件执行两次操作。
yqlxgs2m4#
使用
rev
和awk