awkやコマンドを使用して ' - 'と ' - 'の前の文字を削除するにはどうしたらいいですか?特定の文字を削除する
XR-234|YYY|YYY|IR-567
YYYY|GT-890|YYYY|YYYY
OUTPUT:
234|YYY|YYY|567
YYYY|890|YYYY|YYYY
awkやコマンドを使用して ' - 'と ' - 'の前の文字を削除するにはどうしたらいいですか?特定の文字を削除する
XR-234|YYY|YYY|IR-567
YYYY|GT-890|YYYY|YYYY
OUTPUT:
234|YYY|YYY|567
YYYY|890|YYYY|YYYY
awk 'BEGIN{FS=OFS="|"}{for(i=1;i<=NF;i++) gsub(/^[^-]+-/,"",$i)}1' inputfile
FS
とOFS
に設定されています "|"内部のBEGINブロック。その後、フィールドごとに交換し、gsub
機能を使用して印刷します。
もっとシンプルすぎawkでは使用sed
sed 's/[^|]\+-//g' inputfile
試みは:ダッシュまで
awk '{gsub(/[a-zA-Z]+-/,"")} 1' Input_file
グローバル置換アルファベットは( - )NULL、その後、ここにINPUT_FILEを言及します。 sedを使用して
:
sed 's/[^|]*-//g' fil
このコードでは質問に答えることができますが、問題の解決方法や理由についての追加の文脈を提供すると、回答の長期的価値が向上します。 – Badacadabra
は、2つの文字とダッシュを削除します。 Perlスクリプト言語を使用して
awk '{gsub(/..-/,"")}1' file
234|YYY|YYY|567
YYYY|890|YYYY|YYYY
このコードは質問に答えるかもしれませんが、どのようにして問題が解決されるのか、および/または理由が解決される理由についての追加の文脈を提供することで、回答の長期的価値が向上します。 – Badacadabra
$ awk '{gsub(/[^|-]+-/,"")}1' file
234|YYY|YYY|567
YYYY|890|YYYY|YYYY
、
#!/use/bin/Perl
use warnings;
use strict;
while(<>){
s/(\w)*-//;
print;
}
、以下のようにこのスクリプトを実行 perlのscript.pl your_test_file
これができます、ご希望の出力、
234|YYY|YYY|567
YYYY|890|YYYY|YYYY
'\ +'はGNU sed-yに依存することに注意してください代わりに '\ {1、\}'を使うか、 '-E'スイッチを追加して' + 'を使うことができます。 –