使用しようとしているときにawk
機能する他のものを使用できます。
次の行を含むファイルがあるとします。
ewhueh wnlknlweknlnw/ qwejmdpdhhd 47578
enhkine enoekjohnkjiof elkjehbjuwekjuk 88989
ehnjkine efjlwkjflkjw/ ie3hjfihie 73746
ehneihe efhehjlkijehfl ekljekfjl 8438477
しかし、すべての行がこのようにスラッシュで終わりたいと思います。
ewhueh wnlknlweknlnw/ qwejmdpdhhd 47578
enhkine enoekjohnkjiof/ elkjehbjuwekjuk 88989
ehnjkine efjlwkjflkjw/ ie3hjfihie 73746
ehneihe efhehjlkijehfl/ ekljekfjl 8438477
どうすればいいですか?
私はこれを試しましたが、悪い結果を得ました
awk '{sub(/.$/, "/", $2)} 1'
しかし、これを得ました。
ewhueh wnlknlweknlnw/ qwejmdpdhhd 47578
enhkine enoekjohnkjio/ elkjehbjuwekjuk 88989
ehnjkine efjlwkjflkjw/ ie3hjfihie 73746
ehneihe efhehjlkijehf/ ekljekfjl 8438477
私が望んでいない前の行の最後の文字を削除します。
では、どうすればこのような結果が得られますか?
ewhueh wnlknlweknlnw/ qwejmdpdhhd 47578
enhkine enoekjohnkjiof/ elkjehbjuwekjuk 88989
ehnjkine efjlwkjflkjw/ ie3hjfihie 73746
ehneihe efhehjlkijehfl/ ekljekfjl 8438477
答え1
awkを使用してください:
awk '$2 !~ /\/$/ {$2 = $2 "/"}; 1' file
答え2
単純な。問題のファイル名がfoo.txtであると仮定すると、sed
次のように目的の結果が得られます。
sed 's/$/\//' foo.txt > aux && mv aux foo.txt