我有一个文件,如果第一列的值等于brand,city和zipcode,则需要保留行 所以对于这个文件
product,0 0,no way
brand,0 0 0,detergent
product,0 0 1,sugar
negative,0 0 1, sight
city,0 0 2,grind
zipcode,0 0 1,five
我将需要此输出
brand,0 0 0,detergent
city,0 0 2,grind
zipcode,0 0 1,five
如果保留值的数量从3增加到20-30,有效的方法是什么?我们可以使用具有我们需要保留的值的文件values.txt
brand
city
zipcode
可以使用哪个?
答案 0 :(得分:3)
@RolesAllowed({ "ROLE_VIEWER", "ROLE_EDITOR" })
public boolean isValidUsername2(String username) {
//...
}
来营救!
awk
答案 1 :(得分:0)
保留第一个记录与品牌,城市或邮政编码匹配的行:
awk
awk -F, '$1~/^(brand|city|zipcode)$/' file
sed
sed -r '/^(brand|city|zipcode),/!d' file
从文件中读取定义
awk -F, 'a[$1];FNR==NR{a[$1]=1}' values.txt file
这需要values.txt
中的唯一值。
答案 2 :(得分:0)
Grep对于此应用程序来说要容易得多。只需创建一个名为“ words”的文件,即可在单独的一行中包含您感兴趣的每个单词。然后:
cat words | while read interesting_word; do grep "^$interesting_word" myfile; done