Shell脚本附加到很长的行

时间:2011-03-29 20:28:54

标签: shell sed newline

在下面很长的一行示例中,如何将"***"附加到行尾?

在sed中尝试使用“$”但是替换不是在行尾但附近在列350之后。请参阅下面的"***"

tail -n+2 filename.dat | sed s/"$"/"***"/

xxxxxxxxxxx@gmail.com|111150151744782|99149327|NONM|20110325|20110605|TE201107E||ESOK1A||2002|2003A|2004A|2005|2007|2008|2009|2010|2011|2012|2014A|2016|2017A|2018|2019|2020|2021A|3001|3002|4001A|4002|4003|4004|4005A|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||8A12329A***833493A9C52EF5D66419ED5|016|zzzzzz|41606299952

2 个答案:

答案 0 :(得分:4)

试试这个:sed 's/$/*/g'

(我在bash上使用Ubuntu

答案 1 :(得分:0)

还有其他方法可以追加。追加基本上只是将某些东西附加到已经存在的字符串上。 “替代”不是必要的。只需打印出你想要的东西就足够了。

壳:

   $ var=$(tail -n+2 filename.dat )
   $ echo "${var}***"

AWK:

$ tail -n+2 filename.dat | awk '{print $0"***"}'

红宝石(1.9 +)

$ ruby -ne 'puts $_.chomp+"***"' file