我需要编写一个bash脚本以列出sql数据库中的值。
我已经走了,但是现在我需要做剩下的事情。
到目前为止的字符串是
func secondsToString(_ seconds: Int) -> String {
let formatter = DateComponentsFormatter()
formatter.unitsStyle = .full
formatter.allowedUnits = [.second, .hour, .day]
let string = formatter.string(from: DateComponents(second: seconds)) ?? ""
var substrings = string.components(separatedBy: " ")
// Using for...each would make the iterating element a constant and hence i would have to find the index and replace it using the index
for i in 0...substrings.count {
if let firstCharacter = substrings[i].unicodeScalars.first, CharacterSet.letters.contains(firstCharacter) {
substrings[i] = substrings[i].capitalized
break
}
}
let finalString = substrings.joined(separator: " ")
return finalString
}
我现在需要删除语音标记之间的所有内容并将其发送到新行。
所需的输出:
10.255.200.0/24";i:1;s:15:"10.255.207.0/24";i:2;s:14:"192.168.0.0/21
任何帮助将不胜感激。
答案 0 :(得分:2)
Col1 Col2 Col3 Col4 Col 5
100 m1 1 4 low
200 m2 7 5 med
120 m1 4 4 low_red
240 m2 8 5 med_red
300 m3 5 4 high
330 m3 2 4 high_red
350 m3 11 4 high_red
200 m4 9 4 high
答案 1 :(得分:1)
您可以使用:
echo 'INPUT STRING HERE' | sed $'s/"[^"]*"/\\\n/g'
说明:
sed 's/<PATTERN1>/<PATTERN2/g'
:我们将PATTERN1
的每次出现的PATTERN2
替换为[^"]*
"
:任意次数的不是\\\n
的字符double.TryParse
:sed(reference here)中换行符的语法答案 2 :(得分:1)
考虑到您的Input_file与所示示例相同,那么您可以尝试以下操作。
awk '
{
while(match($0,/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+\/[0-9]+/)){
print substr($0,RSTART,RLENGTH)
$0=substr($0,RSTART+RLENGTH)
}
}' Input_file
答案 3 :(得分:0)
这可能对您有用(GNU sed):
sed 's/"[^"]*"/\n/g' file
或与Bash一起使用:
sed $'/"[^"]*"/\\n/g' file
或使用其他大多数sed:
sed ':a;/"[^"]*"\(.*\)\(.\|$\)/{G;s//\2\1/;ba}' file
这使用了无保留空间包含换行符的功能。