Mám takový soubor:
ID A56
DS /A56
DS AGE 56
A chtěl bych vytisknout celý řádek, pouze pokud druhý sloupec začíná velkým písmenem.
Očekávaný výstup:
ID A56
DS AGE 56
Co jsem zatím zkoušel:awk '$2 ~ /[A-Z]/ {print $0}' file
Vytiskne vše:velká písmena se nacházejí ve druhém sloupci.
awk '$2 /[A-Z]/' file
Dostane chybu syntaxe.
Přijatá odpověď:
Můžete použít awk
jak navrhl @cuonglm nebo
-
GNU grep
grep -P '^[^s]+s+[A-Z]' file
-
Perl
perl -lane 'print if $F[1]=~/^[A-Z]/' file
-
GNU sed
sed -rn '/^[^s]+s+[A-Z]/p' file
-
shell (předpokládá nejnovější verzi ksh93, zsh nebo bash)
while read -r a b; do [[ $b =~ ^[A-Z] ]] && printf "%s %sn" "$a" "$b"; done < file
Proč variabilní expanze bez $ funguje ve výrazech?
(nejlépe nekomplikované) Jak se vyhnout opravám pravopisu při použití příkazu `mv` Zsh?