> echo "$/"
Illegal variable name.
> echo '$/'
$/
> set i=blah
> echo "$i"'$/'
blah$/
> echo $i:q'$/'
blah$/
Então:
sed -i '/^'$i:q' /s/$/ ASAN ASAN_CUI/' testify.list
Ou use um shell com uma sintaxe mais limpa / melhor / mais fácil, como zsh
:
zsh% for i ($(< ~/scratch_r/review/1810a042/list2test))
for> sed -i "/^$i /s/$/ ASAN ASAN_CUI/" testify.list
Embora aqui, em vez de reescrever o testify.list
repetidamente, você poderia fazer isso de uma só vez:
sed -i "$(
sed 's|.*|/^& /s/$/ ASAN ASAN_CUI/|' ~/scratch_r/review/1810a042/list2test
)" testify.list
Ou talvez:
perl -lapi -e 'BEGIN{while (<STDIN>) {chomp; $w{$_}++}}
$_ .= " ASAN ASAN_CUI" if $w{$F[0]}
' testify.list < ~/scratch_r/review/1810a042/list2test
(nenhum teste).
Todos aqueles que assumem o list2test
contém uma palavra por linha, sem espaços em branco, sem /
, sem curingas ou operadores regex ...