
私はシェル スクリプトについて非常に初心者なので、これは非常に簡単な解決策かもしれませんが、うまく機能させるのに苦労しています。次の内容のファイルがあります:
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.
の先頭に文字列が追加されて出力されます。