次の問題を解決するにはシェルスクリプトが必要です
elecj_test: |1009676|F|269.13348200|3|348415|237.06|0.00|0.00|||SSPPPSSSPSSS|UNTESTED||
行が次から始まる場合電子テスト:そして||次に交換する必要があります。|
その間にスペースがあります。|
見つかったら、行の真ん中にあります。||交換できず、行末でのみ可能です。
ベストアンサー1
そしてアッ、パイプをフィールドセパレータとして使用します。
- 最初のフィールドが「elecj_test:」と等しいか、最後のフィールドが空であるか、最後に2番目のフィールドが空であるかをテストします。
- trueの場合、最後から2番目のフィールドを空白に設定します。
awk '
BEGIN { FS = OFS = "|" }
$1 == "elecj_test: " && $NF == "" && $(NF - 1) == "" {
$(NF - 1) = " "
print
}
' file
elecj_test: |1009676|F|269.13348200|3|348415|237.06|0.00|0.00|||SSPPPSSSPSSS|UNTESTED| |