0

Linux マシンでは、次のような IP のリストがあります。

107.6.38.55
108.171.207.62
108.171.244.138
108.171.246.87

次のように、関数を使用して、各行を改行せずに各行の最後に「または」という単語を追加したいと考えています。

107.6.38.55 or 
108.171.207.62 or
108.171.244.138 or
108.171.246.87 or

私が実験したすべての実装、sedまたはawk奇妙な場所で改行または入力を追加しようとし続けるため、誤った結果が得られました。この目標を達成する最も簡単な方法は何ですか?

これまでに試しawk '$0=$0" or"'た提案により、次のフォーマットが得られます。sed

107.6.38.55
 or 
108.171.207.62
 or 
108.171.244.138
 or
108.171.246.87
 or
4

3 に答える 3

4

次の2つは私のために働いた:

sed 's/.*/& or/'
sed 's/$/ or/'
于 2013-06-21T14:31:53.747 に答える
4

あなたが何をしようとしているのかわかりませんが、Ubuntu 12.04で次のことがうまくいきます

awk '{print $0" or"}'

または、フェドルキが示唆するように

awk '$0=$0" or"'

または、グレン・ジャックマンが示唆するように

awk '{print $0, "or"}'

[編集]

OPのファイルにCRLF改行が含まれていることが判明したためdos2unix、フォーマットの問題に対処するために最初に実行する必要がありました

于 2013-06-21T14:30:33.680 に答える
0

または、標準のテキスト エディタである

では、素敵なヒア文字列をANSI-C 引用符と一緒に使用できます

ed -s filename <<< $',s/.$/& or/\nwq'

またはパイプprintf

printf "%s\n" ',s/.$/& or/' 'wq' | ed -s filename

またはあなたがechoもっと好きなら

{ echo ',s/.$/& or/'; echo "wq"; } | ed -s filename

またはインタラクティブに(疑問符が好きな場合):

$ ed filename
,s/.$/& or/
wq

述べる。空行に追加しないようにするためだけs/.$/& or/でなく、置換を使用しています。s/$/ or/or

于 2013-06-21T14:50:28.783 に答える