在脚本与命令行中使用时,awk添加回车符
从命令行:在脚本与命令行中使用时,awk添加回车符,awk,Awk,从命令行: $cat file.txt OLAPSYS:3FB8EF9DB538647C:LOCKED OR EXPIRED awk '{sub(/[ ]+/," ")}1' file.txt ./script.sh > output cat output OLAPSYS:3FB8EF9DB538647C:LOCKED OR EXPIRED 在文件上运行awk.txt: $cat file.txt OLAPSYS:3FB8EF9DB538647C:LOCKED O
$cat file.txt
OLAPSYS:3FB8EF9DB538647C:LOCKED OR EXPIRED
awk '{sub(/[ ]+/," ")}1' file.txt
./script.sh > output
cat output
OLAPSYS:3FB8EF9DB538647C:LOCKED
OR
EXPIRED
在文件上运行awk.txt:
$cat file.txt
OLAPSYS:3FB8EF9DB538647C:LOCKED OR EXPIRED
awk '{sub(/[ ]+/," ")}1' file.txt
./script.sh > output
cat output
OLAPSYS:3FB8EF9DB538647C:LOCKED
OR
EXPIRED
预期结果:OLAPSYS:3FB8EF9DB538647C:锁定或过期
来自我的脚本:$cat Script.sh
active_db_users="OLAPSYS:3FB8EF9DB538647C:LOCKED OR EXPIRED"
for i in $active_db_users
do
acct_status=$(echo $i | awk '{sub(/[ ]+/," ")}1')
echo $acct_status
done
运行脚本:
$cat file.txt
OLAPSYS:3FB8EF9DB538647C:LOCKED OR EXPIRED
awk '{sub(/[ ]+/," ")}1' file.txt
./script.sh > output
cat output
OLAPSYS:3FB8EF9DB538647C:LOCKED
OR
EXPIRED
意外结果包含回车符。如何修改脚本,使结果为一行,无回车符:
$cat file.txt
OLAPSYS:3FB8EF9DB538647C:LOCKED OR EXPIRED
awk '{sub(/[ ]+/," ")}1' file.txt
./script.sh > output
cat output
OLAPSYS:3FB8EF9DB538647C:LOCKED
OR
EXPIRED
OLAPSYS:3FB8EF9DB538647C:锁定或过期正确引用shell变量:
active_db_users="OLAPSYS:3FB8EF9DB538647C:LOCKED OR EXPIRED"
for i in "$active_db_users"
do
acct_status="$(echo "$i" | awk '{sub(/[ ]+/," ")}1')"
echo "$acct_status"
done
然后再次运行脚本,如果仍然存在问题,请告知我们
看看你是否不知道为什么你应该总是引用你的变量,除非你有一个特定的目的,让他们不被引用,并充分理解所有的含义
另请阅读-无论您试图做什么,上面的脚本似乎是错误的方法。您希望循环迭代多少次?