次のコードがありますunterminated error
。$1
ABC-TXT-123
TEXT abc.123
ABC-TXT-123
#!/bin/bash
id=$1
if [[ $id =~ .*TXT.* ]]; then
sed -i "s/TEXT abc.*/TEXT $id/" someDataFile
fi
答え1
次のコマンドでうまく動作します。
$ cat > test
asd asd asd asd
asd TEXT abc.123 asd
asd asd asd asd
$ var='ABC-TXT-123'
$ sed -i "s/TEXT abc.*/TEXT $var/" test
$ cat test
asd asd asd asd asd
asd TEXT ABC-TXT-123
asd asd asd asd asd
おそらくそのファイルの一部を私たちに提供してください。
答え2
''
OSXでは、機能するためにもう1つ追加する必要がありました。
#!/bin/bash
id=$1
if [[ $id =~ .*TXT.* ]]; then
sed -i '' 's/TEXT abc.*/TEXT '$id'/' someDataFile
fi
これは、someDataFileの内容が「TEXT abc.123」から「TEXT ABC-TXT-123」に変更されることを意味します。ただし、説明要件が若干異なるため、以下が必要になる場合があります。
sed -i '' 's/TEXT abc.*/'$id'/' someDataFile
代わりに「TEXT」という単語を入れ直すのではなく、行全体を置き換えるには...