rad*_*dox 3 regex bash awk sed
我真正的问题是我的文件如下所示:
username=password
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用 -F=,但是如果第二列可能包含等号,我该怎么办?
name=laskjf9w8u23;oi4==
Run Code Online (Sandbox Code Playgroud)
目前我拥有的代码正在砍掉最后一个等号。我只能假设,如果该字符串前面有一个等号,它也会被截断。
这是我目前拥有的:
cat file.txt | grep "=" | sed 's/\//\\\//g' | awk --field-separator "=" --assign file="<outfile>" '{printf "\"s/@%s@/", $1 ; for (i = 2; i <= NF; i++) { printf "%s", $i ; if ($i != $NF) printf "=" } ; printf "/g\" %s\n", file; }' | xargs -n2 sed -i
Run Code Online (Sandbox Code Playgroud)
干杯!
你真的必须使用吗awk?进行这种分离的最简单方法是cut:
echo "name=laskjf9w8u23;oi4==" | cut -d= -f2-
laskjf9w8u23;oi4==
Run Code Online (Sandbox Code Playgroud)
请注意-f2-. 这意味着抓住倒数第二组,所以你最终不会只有laskjf9w8u23;oi4. 它也将处理后面的等号。
-d=设置=为分隔符。
| 归档时间: |
|
| 查看次数: |
2005 次 |
| 最近记录: |