以下是文件中的文本:
Pseudo name=Apple
Code=42B
state=fault
Pseudo name=Prance
Code=43B
state=good
Run Code Online (Sandbox Code Playgroud)
我需要 grep 为“42B”并从上面的文本中获取输出,例如:
Pseudo name=Apple
Code=42B
state=fault
Run Code Online (Sandbox Code Playgroud)
有没有人对如何实现这一想法使用grep/ awk/ sed?
AWK 不匹配gsub()\n上的换行符。
只想更改下面的“草莓”水果条目。
用 sed 也会很棒。
\n正如您在此脚本中看到的那样,它会忽略:
cat << 'EOF' > ~/src
apple
fruit
strawberry
fruit
orange
fruit
blackberry
EOF
cat << 'EOF' > ~/scp.sh
#!/bin/bash
cat ~/src | awk '{ gsub("strawberry\nfruit", "strawberry\nfruitIsRed"); print }' > ~/trg
EOF
sh ~/scp.sh
diff ~/src ~/trg
# files are equals
Run Code Online (Sandbox Code Playgroud)