
答え1
一つの方法は次のとおりです:
## save the first line of one.txt in the variable $string
string=$(head -n1 one.txt)
## delete the first line of one.txt
sed -i '1d' one.txt
## replace the Xs in `>>XXXXX<<` with the contents of `$string`
## and save as the new file "$string.txt" (AAAA.txt)
sed "s/>>XXXXXXX<</>>$string<</" sample.txt > $string.txt
>>XXXXXX<<
これは、 のどの行にもが 1 つだけ出現することを前提としていることに注意してくださいsample.txt
。 が 1 行に複数出現する場合、上記のコマンドは各行の最初の 1 つだけを置き換えます。 すべてを置き換えるには、代わりに以下を使用します。
sed "s/>>XXXXXXX<</>>$string<</g" sample.txt > $string.txt
元の質問では、 の各行の末尾にスペースがありましたone.txt
。実際のファイルでもこのようになっており、 に追加する前にスペースを削除する必要がある場合は、sample.txt
次を使用します。
string=$(head -n1 one.txt | sed 's/ *$//')
その後は上記と同じコマンドを実行します。