我有一个包含几千个日期的 txt 文件。我想使用 osx bash 在每一行添加一个字符串。它在使用正则表达式的子行中工作得很好,但我无法让它在 bash 中执行我想要的操作 - 即使使用相同的正则表达式。
我认为 SED 是正确的工具,添加 -E 以获得正确的正则表达式,然后设置“选择”每一行并在其末尾添加“任何”。但是 - sed 正在替换该行的第一个字母,而不是将其附加到每行。有什么线索吗?
sed -E 's/^(.*)$/\1whatever/g' testbase.txt
预先感谢您的任何提示 - 我期待着我的“啊哈”时刻。
米
添加:我对包含电子邮件列表(计算文本是文本)的文件而不是带有日期的文件进行了所有测试。使用评论者善意提供的以下命令(非常感谢!),我在日期/时间文件中得到了正确的结果(日期,然后是其他内容)。但是 - 在电子邮件列表中,我得到一个电子邮件列表,并且在每一行之间添加了另一行“无论”。
sed 's/^\(.*\)$/\1whatever/g' testbase1.txt
这是 od -c datetimefile 的输出
$ od -c datetimefile.txt 0000000 abrcookie 3 @ gmail 0000020 。 com \r \ndicookie 3 @ 0000040 aol 。 com \r \nporcook 0000060 即 7 6 @ gmail 。 com \r \n 0000100 tercookie 4 @ gmail 0000120 。 com \r \nsumcookiel 0000140 1 1 @ gmail . com \r \nnl 0000160 cookie 0 @ gmail 。 co 0000200 m \r \nmcdcookie 2 @ ho 0000220 tmail 。 com \r \nandrc 0000240 ookiea 1 1 @ gmail 。 c 0000260 om \r \ncacookie @ ell 0000300 ervik 。 dk \r \nnaveco 0000320 okierd 1 @ gmail 。 co 0000340 m \r \nfariacookie 1 0 0000360 @ gmail 。 com \r \nyoco 0000400 okieoe 4 0 1 @ 雅虎。 0000420 com \r \nandcookiere 0000440 n 2 3 @ gmail 。 com \r \nc 0000460 ookieka 7 7 @ hotmai 0000500 l 。 com \r \nlilcookie 0000520 8 8 @ aol . com 0000532
od -c emaillistfile 的输出
$ od -c testbase1.txt 0000000 2 0 2 0 - 1 2 - 2 4 2 1 : 3 2 : 0000020 4 4 \n 2 0 2 0 - 1 2 - 2 4 2 1 : 0000040 3 2 : 4 4 \n 2 0 2 0 - 1 2 - 2 4 0000060 2 1 : 3 2 : 4 4 \n 2 0 2 0 - 1 2 0000100 - 2 4 2 1 : 3 2 : 4 4 \n 2 0 2 0 0000120 - 1 2 - 2 4 2 1 : 3 2 : 4 4 \n 2 0000140 0 2 0 - 1 2 - 2 4 2 1 : 3 2 : 4 0000160 4 \n 2 0 2 0 - 1 2 - 2 4 2 1 : 3 0000200 2 : 4 4 \n 2 0 2 0 - 1 2 - 2 4 2 0000220 3 : 2 6 : 0 1 \n 2 0 2 0 - 1 2 - 0000240 2 4 2 3 : 2 6 : 0 1 \n 2 0 2 0 - 0000260 1 2 - 2 4 2 3 : 2 6 : 0 1 \n 2 0 0000300 2 0 - 1 2 - 2 4 2 3 : 2 6 : 0 1 0000320 \n 2 0 2 0 - 1 2 - 2 1 0 1 : 4 9 0000340 : 3 4 \n 2 0 2 0 - 1 2 - 0 8 0 1 0000360 : 3 9 : 0 6 \n 2 0 2 0 - 1 2 - 1 0000400 0 1 1 : 4 7 : 4 3 \n 2 0 2 0 - 1 0000420 2 - 1 5 1 5 : 3 0 : 3 2 \n 2 0 2 0000440 0 - 1 2 - 1 5 1 6 : 0 2 : 5 6 \n 0000460 2 0 2 0 - 1 2 - 1 9 1 6 : 3 5 : 0000500 4 8 \n 2 0 2 0 - 1 2 - 1 9 2 1 : 0000520 5 8 : 1 1 \n 2 0 2 0 - 1 2 - 2 0 0000540 1 5 : 4 0 : 5 2 0000550