在 sh 中读取文件时丢弃注释和空格

问题描述 投票:0回答:1

我需要编写一段对于我目前的技能来说太难的代码

这必须在 sh 中,因为脚本的其余部分在 sh 中,我在 freebsd 上运行它,这样你就知道,因为我认为 linux 上的 awk 和 freebsd 之间可能存在一些差异

我有一个像这样的外部文件

some "data1"  #some comment
some data2  #some comment
some "data3"  #some comment
some "data4"
some data5 #maybe some comment

我需要将它连接成这样的字符串(跳过注释)

(some "data1") or (some data2) or (some "data3") or (some "data4") or (some data5)

我需要跳过 # 之后的所有内容,并且最后一个“或”也被跳过,有人可以帮助我在 sh 中执行此操作,谢谢:)

我可能可以自己做,但我不知道如何跳过评论

sh
1个回答
0
投票
#!/bin/sh

output=""
while IFS= read -r line; do
  line=${line%%"#"*}
  output="${output} or ($line)"
done
output=${output# or } # remove the first " or "

echo "$output"
© www.soinside.com 2019 - 2024. All rights reserved.