Bash :: ファイルの出力にテキストを追加する

Bash :: ファイルの出力にテキストを追加する

私はシェル スクリプトについて非常に初心者なので、これは非常に簡単な解決策かもしれませんが、うまく機能させるのに苦労しています。次の内容のファイルがあります:

example1.eu 
example2.eu 
example3.eu

私がやろうとしているのは、ファイルの内容を次のような 1 行の形式で出力することです。

テスト例1.eu、テスト例2.eu、テスト例3.eu

等々。

私のスクリプトにはこれがありますが、ファイルの最初のエントリに「test」を追加する方法がわかりません。

cat file | xargs | sed -e 's/ /,test./g'

例1.eu、テスト.例2.eu、テスト.例3.eu

アドバイスをお願いします ありがとうございます

答え1

区切り文字を設定するには「貼り付け」を使用することができます。例:

cat file | sed -e 's/^/test./' | paste -sd ','

編集: 改良版 (tripleee のコメント)

sed file -e 's/^/test./' | paste -sd ','

答え2

これは次のコマンドを使用して実行できますawk:

 $ awk '{a=a"test."$0","}END{sub(/,$/,"",a);print a}' file
 test.example1.eu,test.example2.eu,test.example3.eu

これにより、文字列変数が作成されa、各行とコンマが文字列に追加されます。次に、最後のコンマを何もない状態に置き換えて、文字列を出力します。

末尾にコンマが付いた以前の応答:

 $ awk 'BEGIN{ORS=","}{print "test."$0}' file
test.example1.eu,test.example2.eu,test.example3.eu,

これにより、出力レコード区切り文字がコンマに設定され、各行test.の先頭に文字列が追加されて出力されます。

関連情報