我在資料集的第二列使用了一個名為“Store”的欄位的資料集。
"Store"
A
B
C
A
以下代碼不起作用。我想要的是將“A”值重命名為“A_store”
awk -F, 'BEGIN {FS=","} {if (NR!=1 && $2=="A") $2="A_store"}' output.csv
所需的輸出:
"Store"
A_store
B_store
C_store
A_store
uj5u.com熱心網友回復:
我不清楚您的目標,但也許這會有所幫助:
cat test.txt
"Store", "something else", "another thing", "last thing"
A, 1, 5, q
B, 2, 6, r
C, 3, 7, s
A, 4, 8, t
awk -F"," '{if(NR>1) $1=$1"_store"; print}' test.txt
"Store", "something else", "another thing", "last thing"
A_store 1 5 q
B_store 2 6 r
C_store 3 7 s
A_store 4 8 t
awk -F"," '{if(NR>1 && $1=="A") $2=$1"_store"; print}' test.txt
"Store", "something else", "another thing", "last thing"
A A_store 5 q
B, 2, 6, r
C, 3, 7, s
A A_store 8 t
awk -F"," '{if(NR>1 && $1 == "A") $2=$1"_store"; else if(NR>1) $2=$1; print}' test.txt
"Store", "something else", "another thing", "last thing"
A A_store 5 q
B B 6 r
C C 7 s
A A_store 8 t
此外,如果您的字串中有空格,您將需要稍微更改您的代碼,例如
cat test.txt
"Store", "something else", "another thing", "last thing"
A, 1, 5, q
B, 2, 6, r
C, 3, 7, s
A, 4, 8, t
awk -F"," '{if(NR>1 && $1 ~ "A") $1=$1"_store"; print}' test.txt
"Store", "something else", "another thing", "last thing"
A_store 1 5 q
B, 2, 6, r
C, 3, 7, s
A_store 4 8 t
這能解決你的問題嗎?
uj5u.com熱心網友回復:
如果 OP 想要保留逗號(如“ output.csv”所示),那么類似
樣本輸入
"misc","Store", "something else", "another thing", "last thing"
,A, 1, 5, q
,B, 2, 6, r
,C, 3, 7, s
,A, 4, 8, t
代碼
{m,g}awk 'BEGIN{ _ =_^=FS=OFS="," } sub("^A$","&_store",$_)^!_'
or
{m,g}awk 'sub("^A$","&_store",$(!_ !_))^_' FS=, OFS=,
or
{m,g}awk 'sub("^A$","&_store",$2)^_' FS=',' OFS=','
樣本輸出
"misc","Store", "something else", "another thing", "last thing"
,A_store, 1, 5, q
,B, 2, 6, r
,C, 3, 7, s
,A_store, 4, 8, t
uj5u.com熱心網友回復:
# data.csv
foo,"Store",bar
1,AA,1
2,B,1
3,C,1
4,A,1
$ awk -F, -vOFS=, 'NR>1&&$2=="A"{$2=$2"_store"}1' data.csv
foo,"Store",bar
1,AA,1
2,B,1
3,C,1
4,A_store,1
修剪空格
# data.csv
foo,"Store",bar
1,AA,1
2,B,1
3, A ,1
4,A,1
$ awk -F, -vOFS=, 'NR>1 && $2 ~ /^[ ]*A[ ]*$/ {gsub(/^[ \t] /, "", $2); gsub(/[ \t] $/, "", $2); $2=$2"_store"}1' data.csv
foo,"Store",bar
1,AA,1
2,B,1
3,A_store,1
4,A_store,1
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/483598.html
上一篇:用于Linux的Exe4j
