여러 스크립트에서 포트 번호를 0으로 변경하고 싶지만 포트 0 뒤의 텍스트는 동일하게 유지하고 싶습니다. 이를 수행할 수 있는 방법이 있습니까? vi를 통해 모드를 변경할 수 있지만 포트 번호는 둘 다 고유하므로 변경할 수 없습니다. 감사해요!
local-ip 159.105.100.40 port 5510 remote-ip 152.16.142.104 port 3868
답변1
Whis는 sed
간단합니다.
$ foo="local-ip 159.105.100.40 port 5510 remote-ip 152.16.142.104 port 3868"
$ echo "$foo" | sed 's/port [0-9]\{1,5\}/port 0/g'
local-ip 159.105.100.40 port 0 remote-ip 152.16.142.104 port 0
그래서
# let's suppose that all your scripts are in the same directory
# and have the extension .sh
for file in *.sh; do
# WARNING: the -i option writes the file
# so it's better to try first without it
sed -i 's/port [0-9]\{1,5\}/port 0/g' "$file"
done
vi
동일한 명령을 사용할 수 있습니다 .
:s/port [0-9]\{1,5\}/port 0/g
아니면 더 간단합니다.@콰지모도제안:
:s/port \d\+/port 0/g