Скрипт оболочки для добавления к очень длинным строкам - PullRequest
0 голосов
/ 30 марта 2011

В приведенном ниже примере очень длинной строки, как я могу добавить "***" к концу строки?

Попытка использовать "$" в 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 ]

4 голосов
/ 30 марта 2011

Попробуйте: sed 's/$/*/g'

(я использую bash на Ubuntu)

0 голосов
/ 30 марта 2011

Есть и другие способы добавления. Добавление в основном просто присоединение чего-либо к уже существующей строке. «Замена» не нужна. Достаточно просто напечатать то, что вы хотите, в конце.

Оболочка:

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

AWK:

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

Рубин (1,9 +)

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