Linux-2026-fall-hidden

来自SUDA-HLT
Zhli讨论 | 贡献2026年9月7日 (一) 03:01的版本 (建立内容为“ == 零散知识点 == <nowiki> awk 'BEGIN {FS=",";OFS="#"}; {print $1, $2}' a.txt awk -F',' 'BEGIN {OFS="#"}; {print $1, $2}' a.txt b=($(cat a.txt)) 【外…”的新页面)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索


零散知识点


awk 'BEGIN {FS=",";OFS="#"}; {print $1, $2}' a.txt

awk -F',' 'BEGIN {OFS="#"}; {print $1, $2}' a.txt

b=($(cat a.txt)) 【外面的()必须有,否则 b 就不是一个数组了。而是一个字符串了】

a=($(echo 'a b')) 【a 是一个数组了】

sed 's/a/A/g' <<< 'aaa'  字符串的重定向,很有用,应该讲!

a=($(sed 's/,/ /g' <<< 'a,b')) 【a 是数组了】

while read name; do echo $name; done < a.txt  【read 和重定向的配合】

while read -d ',' name; do echo $name; done < a.txt 【-d 是 delimiter,默认是换行符,没遇到一个 delimiter,就会返回一个,最后一个元素后面必须有 delimiter】
a.txt: a,b,c,

read -a arr <<< 'a b c'  【读入数组,arr 会包含三个元素,默认空白符为分隔符】

awk 中变量直接写,不用取值符,如 print x, y, z

awk -F'\n\r' '{print NF}' a.txt  【每一行一个记录,每个记录只有一个 field,因此会输出多个 1,一行对应一个】

IFS=',' read -a arr <<< $x  【默认是空格,IFS 可以改】【不会跨行的】
IFS='\n' read -a arr < a.txt 【不会跨行的,只会处理第一行??】

read x y z <<< '1 2 3' 【第三个变量】

read -a arr < a.txt 【只处理第一行】
IFS=','
while read -a arr; do echo ${arr[1]}; done < a.txt 【每一行输出一次】

arr+=(3) 【数组增加一个元素】