私は以下のように見えるのテストと呼ばれる長いファイルで働いています:私は、しかし、私は2番目の列にこれを達成するために必要な、「NIX」に置き換えた文字列「NIS」を作成する必要がありファイル内の特定の列のみを置き換える方法は?
AHAP USA|NIS00333|+NULL|NISGOOGLE|NIS00005|*binary|NISCAR
KJJLIL123124%|NIS00160|+NULL|NISFACEBOOK|NIS00006|*binary|NISBUR
ASFASS9992|NIS00164|+NULL|NISTABLE|NIS00008|*binary|NISFANCY
それはパイプ文字で区切られています、私のデータの区切り記号はパイプ "|"で、私はいくつかの列を持っています。合計7つで、2番目の列で置換をしたいだけです。
は、私が試した:
$ sed s/NIS/NIX/g test
AHAP USA|NIX00333|+NULL|NIXGOOGLE|NIX00005|*binary|NIXCAR
KJJLIL123124%|NIX00160|+NULL|NIXFACEBOOK|NIX00006|*binary|NIXBUR
ASFASS9992|NIX00164|+NULL|NIXTABLE|NIX00008|*binary|NIXFANCY
をしかし、文字列で一致するすべての列に影響を与えている:私はちょうど第二のカラムに影響を与えたい、NISをしてNIXに変更し、私の所望の出力は次のようになります。
AHAP USA|NIX00333|+NULL|NISGOOGLE|NIS00005|*binary|NISCAR
KJJLIL123124%|NIX00160|+NULL|NISFACEBOOK|NIS00006|*binary|NISBUR
ASFASS9992|NIX00164|+NULL|NISTABLE|NIS00008|*binary|NISFANCY
本当にありがとうございました。どうもありがとうございました。
感謝として私はawkの代わりにawkを使うことを考えています。awkの代わりに何が置き換えに相当するのでしょうか?sedを使用している場合、sed -iを使用して同じファイル内で変更すると、awkに相当するものは何か分かりますか? – neo33
@ neo33 GNU awk 4.1.0から '-i inplace'を使うことができます。さもなければ、そのトリックは常に 'awk '...' file> tmp_file && mv tmp_file file'です。これらのすべては、[awk save modifications inplace](http://stackoverflow.com/a/16529730/1983854)に説明されています。 – fedorqui
はい、ありがとうございました。本当に助かりました。 – neo33